diff --git a/.gitattributes b/.gitattributes index b095aa2cdb..4e8417c0c0 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,5 +1,5 @@ *.pal text eol=crlf - +*.sh text eol=lf *.s text eol=lf *.txt text eol=lf Makefile text eol=lf diff --git a/.travis/calcrom/calcrom.pl b/.travis/calcrom/calcrom.pl index 9c48679290..c5972ae108 100755 --- a/.travis/calcrom/calcrom.pl +++ b/.travis/calcrom/calcrom.pl @@ -9,6 +9,8 @@ open(my $file, $ARGV[0]) my $src = 0; my $asm = 0; +my $srcdata = 0; +my $data = 0; while (my $line = <$file>) { if ($line =~ /^ \.(\w+)\s+0x[0-9a-f]+\s+(0x[0-9a-f]+) (\w+)\/.+\.o/) @@ -28,9 +30,22 @@ while (my $line = <$file>) $asm += $size; } } + elsif ($section =~ /rodata/) + { + if ($dir eq 'src') + { + $srcdata += $size; + } + elsif ($dir eq 'data') + { + $data += $size; + } + } } } +(my $elffname = $ARGV[0]) =~ s/\.map/.elf/; + # Note that the grep filters out all branch labels. It also requires a minimum # line length of 5, to filter out a ton of generated symbols (like AcCn). No # settings to nm seem to remove these symbols. Finally, nm prints out a separate @@ -40,7 +55,7 @@ while (my $line = <$file>) # # You'd expect this to take a while, because of uniq. It runs in under a second, # though. Uniq is pretty fast! -my $base_cmd = "nm pokeemerald.elf | awk '{print \$3}' | grep '^[^_].\\{4\\}' | uniq"; +my $base_cmd = "nm $elffname | awk '{print \$3}' | grep '^[^_].\\{4\\}' | uniq"; # This looks for Unknown_, Unknown_, or sub_, followed by just numbers. Note that # it matches even if stuff precedes the unknown, like sUnknown/gUnknown. @@ -118,3 +133,11 @@ print "$total_syms total symbols\n"; print "$documented symbols documented ($docPct%)\n"; print "$partial_documented symbols partially documented ($partialPct%)\n"; print "$undocumented symbols undocumented ($undocPct%)\n"; + +print "\n"; +my $dataTotal = $srcdata + $data; +my $srcDataPct = sprintf("%.4f", 100 * $srcdata / $dataTotal); +my $dataPct = sprintf("%.4f", 100 * $data / $dataTotal); +print "$dataTotal total bytes of data\n"; +print "$srcdata bytes of data in src ($srcDataPct%)\n"; +print "$data bytes of data in data ($dataPct%)\n"; diff --git a/INSTALL.md b/INSTALL.md index a76175862a..6f5a2435d2 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,116 +1,90 @@ -Follow the OS-specific instructions below. +# Prerequisites -# Linux +| Linux | macOS | Windows 10 (build 18917+) | Windows 10 (1709+) | Windows Vista, 7, 8, 8.1, and 10 (1507, 1511, 1607, and 1703) +| ----- | ----- | ------------------------- | ------------------ | --------------------------------------------------------- +| none | [Xcode Command Line Tools package][xcode] | [Windows Subsystem for Linux 2][wsl2] | [Windows Subsystem for Linux][wsl] | MSYS2 (see below) -Install [**devkitARM**](http://devkitpro.org/wiki/Getting_Started/devkitARM). +[xcode]: 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_ +[wsl2]: https://docs.microsoft.com/windows/wsl/wsl2-install +[wsl]: https://docs.microsoft.com/windows/wsl/install-win10 -Make sure that there is an environment variable called DEVKITARM with the path of the directory before the "bin" directory containing "arm-none-eabi-as", "arm-none-eabi-cpp", "arm-none-eabi-ld" and "arm-none-eabi-objcopy". +The [prerelease version of the Linux subsystem](https://docs.microsoft.com/windows/wsl/install-legacy) available in the 1607 and 1703 releases of Windows 10 is obsolete so consider uninstalling it. -Then get the compiler from https://github.com/pret/agbcc and run the following commands. +Make sure that the `build-essential`, `git`, and `libpng-dev` packages are installed. The `build-essential` package includes the `make`, `gcc-core`, and `g++` packages so they do not have to be obtained separately. MSYS2 does not include `libpng-dev` so it must be built from source. -``` -./build.sh -./install.sh PATH_OF_POKEEMERALD_DIRECTORY -``` +Install the **devkitARM** toolchain of [devkitPro](https://devkitpro.org/wiki/Getting_Started) and add its environment variables. For Windows versions without the Linux subsystem, the devkitPro [graphical installer](https://github.com/devkitPro/installer/releases) includes a preconfigured MSYS2 environment, thus the steps below are not required. -Finally, build the rom. - -``` -make -``` - -# Windows - -Install [**devkitARM**](http://devkitpro.org/wiki/Getting_Started/devkitARM). - -Then get the compiled tools from https://github.com/pret/pokeruby-tools. Copy the `tools/` folder over the `tools/` folder in your pokeemerald directory. - -You can then build pokeemerald using `make` in the MSYS environment provided with devkitARM. - -# Mac - -Installing pokeemerald on a Mac requires macOS >= 10.12 (Sierra or higher). - -Download a [devkitPRO pacman](https://github.com/devkitPro/pacman/releases/tag/v1.0.0) - -Run the following commands in Terminal: + export DEVKITPRO=/opt/devkitpro + echo "export DEVKITPRO=$DEVKITPRO" >> ~/.bashrc + export DEVKITARM=$DEVKITPRO/devkitARM + echo "export DEVKITARM=$DEVKITARM" >> ~/.bashrc -``` -xcode-select --install +# Installation -sudo dkp-pacman -S devkitARM +To set up the repository: -export DEVKITPRO=/opt/devkitpro -echo "export DEVKITPRO=$DEVKITPRO" >> ~/.bashrc -export DEVKITARM=$DEVKITPRO/devkitARM -echo "export DEVKITARM=$DEVKITARM" >> ~/.bashrc -echo "if [ -f ~/.bashrc ]; then . ~/.bashrc; fi" >> ~/.bash_profile + git clone https://github.com/pret/pokeemerald + git clone https://github.com/pret/agbcc -git clone https://github.com/pret/pokeemerald -git clone https://github.com/pret/agbcc + cd ./agbcc + ./build.sh + ./install.sh ../pokeemerald -cd agbcc/ -./build.sh -./install.sh ../pokeemerald + cd ../pokeemerald -cd ../pokeemerald -./build_tools.sh -``` +To build **pokeemerald.gba** and confirm it matches the official ROM image: -And build the ROM with `make`. + make compare -If the step `./build.sh` in the above list of commands fails with the error `Makefile:1: /opt/devkitpro/devkitARM/base_tools: No such file or directory`, then try installing the pacman package `devkitarm-rules` by executing the command +## Notes -``` -sudo dkp-pacman -S devkitarm-rules -``` +* If the base tools are not found on macOS in new Terminal sessions after the first successful build, run `echo "if [ -f ~/.bashrc ]; then . ~/.bashrc; fi" >> ~/.bash_profile` once to prevent the issue from occurring again. Verify that the `devkitarm-rules` package is installed as well; if not, install it by running `sudo dkp-pacman -S devkitarm-rules`. -Executing `./build.sh` again should now succeed. +* If the repository was previously set up using Cygwin, delete the `.exe` files in the subfolders of the `tools` folder except for `agbcc` and try building again. [Learn the differences between MSYS2 and Cygwin.](https://github.com/msys2/msys2/wiki/How-does-MSYS2-differ-from-Cygwin) -# Faster builds +# Guidance -After the first build, subsequent builds are faster. You can further speed up the build: +To build **pokeemerald.gba** with your changes: -## Parallel build + make -This significantly speeds up the build on modern machines. +## Parallel builds -By default `make` only runs a single thread. You can tell `make` to run on multiple threads with `make -j`. See the manfile for usage (`man make`). +See [the GNU docs](https://www.gnu.org/software/make/manual/html_node/Parallel.html) and [this Stack Exchange thread](https://unix.stackexchange.com/questions/208568) for more information. -The optimal value for `-j` is the number of logical cores on your machine. You can run `nproc` to see the exact number. +To speed up building, run: -``` -$ nproc -8 -``` + make -j$(nproc) -If you have 8 cores, run: `make -j8` +`nproc` is not available on macOS. The alternative is `sysctl -n hw.ncpu` ([relevant Stack Overflow thread](https://stackoverflow.com/questions/1715580)). -`-j` on its own will spawn a new thread for each job. A clean build will have thousands of jobs, which will be slower than not using -j at all. +## Building without dependency scanning -## Disable the dependency scanning +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. -If you've 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. + make NODEP=1 -`make NODEP=1` +## Building with devkitARM's C compiler -# Building with devkitARM's C compiler +This project supports the `arm-none-eabi-gcc` compiler included with devkitARM r52. To build this target, simply run: -This project supports the `arm-none-eabi-gcc` compiler which ships with devkitARM r52. To build this target, simply run: + make modern - make modern +## Building with other toolchains -# Building with your own toolchain +To build using a toolchain other than devkitARM, override the `TOOLCHAIN` environment variable with the path to your toolchain, which must contain the subdirectory `bin`. -To build Pokemon Emerald with a toolchain other than devkitARM, override the `TOOLCHAIN` environment variable with the path to your toolchain. Example: + make TOOLCHAIN="/path/to/toolchain/here" - make compare TOOLCHAIN=/usr/local/arm-none-eabi +The following is an example: -The path you pass to the `TOOLCHAIN` variable must contain the subdirectory `bin`. If you compile the `modern` target with this toolchain, the subdirectories `lib`, `include`, and `arm-none-eabi` must also be present. + make TOOLCHAIN="/usr/local/arm-none-eabi" -# Building with debug info +To compile the `modern` target with this toolchain, the subdirectories `lib`, `include`, and `arm-none-eabi` must also be present. -To build the ELF file with enhanced debug info, use the `DINFO` variable: +## Building with debug info - make compare DINFO=1 +To build **pokeemerald.elf** with enhanced debug info, use the `DINFO` variable. + + make DINFO=1 diff --git a/Makefile b/Makefile index 22f9cb4529..5a8af32a97 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,17 @@ TOOLCHAIN := $(DEVKITARM) + +ifeq ($(CC),) +HOSTCC := gcc +else +HOSTCC := $(CC) +endif + +ifeq ($(CXX),) +HOSTCXX := g++ +else +HOSTCXX := $(CXX) +endif + ifneq (,$(wildcard $(TOOLCHAIN)/base_tools)) include $(TOOLCHAIN)/base_tools else @@ -136,7 +149,7 @@ all: rom tools: $(TOOLDIRS) $(TOOLDIRS): - @$(MAKE) -C $@ + @$(MAKE) -C $@ CC=$(HOSTCC) CXX=$(HOSTCXX) rom: $(ROM) @@ -165,6 +178,10 @@ ifeq ($(MODERN),0) @$(MAKE) tidy MODERN=1 endif +ifneq ($(MODERN),0) +$(C_BUILDDIR)/berry_crush.o: override CFLAGS += -Wno-address-of-packed-member +endif + include graphics_file_rules.mk include map_data_rules.mk include spritesheet_rules.mk diff --git a/README.md b/README.md index 4407948f7b..5d4edab857 100644 --- a/README.md +++ b/README.md @@ -2,37 +2,35 @@ [![Build Status][travis-badge]][travis] -This is a disassembly of Pokémon Emerald. +[travis]: https://travis-ci.org/pret/pokeemerald +[travis-badge]: https://travis-ci.org/pret/pokeemerald.svg?branch=master -It builds the following rom: +This is a decompilation of Pokémon Emerald. -* pokeemerald.gba `sha1: f3ae088181bf583e55daf962a92bb46f4f1d07b7` +It builds the following ROM: + +* [**pokeemerald.gba**](https://datomatic.no-intro.org/index.php?page=show_record&s=23&n=1961) `sha1: f3ae088181bf583e55daf962a92bb46f4f1d07b7` To set up the repository, see [INSTALL.md](INSTALL.md). ## See also -* Disassembly of [**Pokémon Red/Blue**][pokered] -* Disassembly of [**Pokémon Yellow**][pokeyellow] -* Disassembly of [**Pokémon Gold**][pokegold] -* Disassembly of [**Pokémon Crystal**][pokecrystal] -* Disassembly of [**Pokémon Pinball**][pokepinball] -* Disassembly of [**Pokémon TCG**][poketcg] -* Disassembly of [**Pokémon Ruby**][pokeruby] -* Disassembly of [**Pokémon Fire Red**][pokefirered] -* 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 FireRed and LeafGreen**](https://github.com/pret/pokefirered) +* [**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 -[pokefirered]: https://github.com/pret/pokefirered -[Discord]: https://discord.gg/6EuWgX9 -[irc]: https://kiwiirc.com/client/irc.freenode.net/?#pret -[travis]: https://travis-ci.org/pret/pokeemerald -[travis-badge]: https://travis-ci.org/pret/pokeemerald.svg?branch=master + +## 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/berry_crush.s b/asm/berry_crush.s index 2c2b552504..8d44c7269e 100755 --- a/asm/berry_crush.s +++ b/asm/berry_crush.s @@ -5,9 +5,6 @@ .text - - - thumb_func_start sub_8021A28 sub_8021A28: @ 8021A28 push {r4-r7,lr} diff --git a/asm/pokenav_unk_2.s b/asm/pokenav_unk_2.s deleted file mode 100644 index da83ccf557..0000000000 --- a/asm/pokenav_unk_2.s +++ /dev/null @@ -1,2239 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - -@ File centered around AllocSubstruct(2) - - - thumb_func_start sub_81C9924 -sub_81C9924: @ 81C9924 - push {lr} - bl sub_81C9958 - adds r1, r0, 0 - cmp r1, 0 - beq _081C9938 - movs r0, 0 - strb r0, [r1, 0xD] - movs r0, 0x1 - b _081C993A -_081C9938: - movs r0, 0 -_081C993A: - pop {r1} - bx r1 - thumb_func_end sub_81C9924 - - thumb_func_start sub_81C9940 -sub_81C9940: @ 81C9940 - push {lr} - bl sub_81C9958 - adds r1, r0, 0 - cmp r1, 0 - beq _081C9952 - movs r0, 0x1 - strb r0, [r1, 0xD] - b _081C9954 -_081C9952: - movs r0, 0 -_081C9954: - pop {r1} - bx r1 - thumb_func_end sub_81C9940 - - thumb_func_start sub_81C9958 -sub_81C9958: @ 81C9958 - push {r4,lr} - ldr r1, =0x0000088c - movs r0, 0x2 - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081C997A - movs r0, 0 - strb r0, [r4, 0xC] - ldr r0, =sub_81C9A10 - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r4, 0x4] - ldr r0, =sub_81C99FC - str r0, [r4] -_081C997A: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C9958 - - thumb_func_start sub_81C9990 -sub_81C9990: @ 81C9990 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x2 - bl GetSubstructPtr - adds r5, r0, 0 - ldr r0, =gUnknown_086201A0 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r5, 0x4] - ldr r0, =sub_81C99FC - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C9990 - - thumb_func_start sub_81C99C0 -sub_81C99C0: @ 81C99C0 - push {lr} - movs r0, 0x2 - bl GetSubstructPtr - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - bx r1 - thumb_func_end sub_81C99C0 - - thumb_func_start sub_81C99D4 -sub_81C99D4: @ 81C99D4 - push {r4,lr} - movs r0, 0x2 - bl GetSubstructPtr - adds r4, r0, 0 - bl sub_81CA7F4 - ldrb r0, [r4, 0x8] - bl RemoveWindow - bl sub_81C9FEC - bl sub_81CA994 - movs r0, 0x2 - bl FreePokenavSubstruct - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C99D4 - - thumb_func_start sub_81C99FC -sub_81C99FC: @ 81C99FC - push {lr} - movs r0, 0x2 - bl GetSubstructPtr - ldr r0, [r0, 0x4] - bl IsLoopedTaskActive - pop {r1} - bx r1 - thumb_func_end sub_81C99FC - - thumb_func_start sub_81C9A10 -sub_81C9A10: @ 81C9A10 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r0, 0x2 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x9 - bls _081C9A24 - b _081C9C60 -_081C9A24: - lsls r0, r4, 2 - ldr r1, =_081C9A34 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C9A34: - .4byte _081C9A5C - .4byte _081C9AEC - .4byte _081C9B30 - .4byte _081C9B88 - .4byte _081C9B9E - .4byte _081C9BA4 - .4byte _081C9BB6 - .4byte _081C9BC0 - .4byte _081C9C0E - .4byte _081C9C4C -_081C9A5C: - ldr r0, =gUnknown_08620194 - movs r1, 0x3 - bl InitBgTemplates - ldr r1, =gPokenavMessageBox_Gfx - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - adds r1, r5, 0 - adds r1, 0x8C - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, =gPokenavMessageBox_Tilemap - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - ldr r0, =gPokenavMessageBox_Pal - movs r1, 0x10 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - 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 -_081C9AD6: - movs r0, 0 - b _081C9C62 - .pool -_081C9AEC: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081C9AFA - b _081C9C5C -_081C9AFA: - ldr r1, =gUnknown_0861FD6C - str r0, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, =gUnknown_0861FFF4 - movs r0, 0x1 - str r0, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, =gUnknown_0861FD4C - movs r1, 0x20 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - b _081C9AD6 - .pool -_081C9B30: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081C9B3E - b _081C9C5C -_081C9B3E: - ldr r1, =gUnknown_0861FC98 - str r0, [sp] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, =gUnknown_0861FCAC - movs r0, 0x1 - str r0, [sp] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, =gUnknown_0861FC78 - movs r1, 0x30 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - bl sub_81C9894 - cmp r0, 0x3 - beq _081C9B76 - bl sub_81C9894 - cmp r0, 0x4 - bne _081C9AD6 -_081C9B76: - bl sub_81CA850 - b _081C9AD6 - .pool -_081C9B88: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081C9C5C - bl sub_81CA6E0 - bl sub_81CA7D4 -_081C9B9A: - movs r0, 0x1 - b _081C9C62 -_081C9B9E: - bl sub_81C9FC4 - b _081C9B9A -_081C9BA4: - bl sub_81CA714 - bl sub_81CA02C - bl sub_81CA640 - bl sub_81CA0C8 - b _081C9AD6 -_081C9BB6: - bl sub_81CA7C4 - cmp r0, 0 - bne _081C9C5C - b _081C9B9A -_081C9BC0: - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - ldrb r0, [r5, 0xD] - cmp r0, 0 - beq _081C9BE0 - movs r0, 0x1 - bl sub_81C7AC0 - b _081C9BEC -_081C9BE0: - movs r0, 0x6E - bl PlaySE - movs r0, 0x3 - bl sub_81C7AC0 -_081C9BEC: - bl sub_81C9894 - cmp r0, 0x3 - beq _081C9BFE - cmp r0, 0x4 - bne _081C9C06 - movs r0, 0x7 - bl LoadLeftHeaderGfxForIndex -_081C9BFE: - movs r0, 0x1 - bl LoadLeftHeaderGfxForIndex - b _081C9AD6 -_081C9C06: - movs r0, 0 - bl LoadLeftHeaderGfxForIndex - b _081C9AD6 -_081C9C0E: - bl IsPaletteFadeActive - cmp r0, 0 - bne _081C9C5C - bl sub_81C9894 - cmp r0, 0x3 - beq _081C9C2C - cmp r0, 0x4 - bne _081C9C38 - movs r0, 0x7 - movs r1, 0 - movs r2, 0 - bl sub_81C7FA0 -_081C9C2C: - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl sub_81C7FA0 - b _081C9C42 -_081C9C38: - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl sub_81C7FA0 -_081C9C42: - bl sub_81CA20C - bl titlescreen_0 - b _081C9B9A -_081C9C4C: - bl sub_81CA324 - cmp r0, 0 - bne _081C9C5C - bl sub_81C8010 - cmp r0, 0 - beq _081C9C60 -_081C9C5C: - movs r0, 0x2 - b _081C9C62 -_081C9C60: - movs r0, 0x4 -_081C9C62: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81C9A10 - - thumb_func_start sub_81C9C6C -sub_81C9C6C: @ 81C9C6C - push {lr} - cmp r0, 0 - beq _081C9C78 - cmp r0, 0x1 - beq _081C9C8E - b _081C9CA2 -_081C9C78: - bl sub_81CAA3C - bl sub_81CA278 - bl sub_81CA714 - movs r0, 0x5 - bl PlaySE - movs r0, 0 - b _081C9CA4 -_081C9C8E: - bl sub_81CA324 - cmp r0, 0 - bne _081C9C9E - bl sub_81CA7C4 - cmp r0, 0 - beq _081C9CA2 -_081C9C9E: - movs r0, 0x2 - b _081C9CA4 -_081C9CA2: - movs r0, 0x4 -_081C9CA4: - pop {r1} - bx r1 - thumb_func_end sub_81C9C6C - - thumb_func_start sub_81C9CA8 -sub_81C9CA8: @ 81C9CA8 - push {lr} - cmp r0, 0x1 - beq _081C9CDC - cmp r0, 0x1 - bgt _081C9CB8 - cmp r0, 0 - beq _081C9CC2 - b _081C9D3C -_081C9CB8: - cmp r0, 0x2 - beq _081C9CFA - cmp r0, 0x3 - beq _081C9D14 - b _081C9D3C -_081C9CC2: - bl sub_81CA9C8 - bl sub_81CA2DC - movs r0, 0 - movs r1, 0 - bl sub_81C7FC4 - movs r0, 0x5 - bl PlaySE - movs r0, 0 - b _081C9D3E -_081C9CDC: - bl sub_81CA324 - cmp r0, 0 - bne _081C9D34 - bl sub_81C8010 - cmp r0, 0 - bne _081C9D34 - bl sub_81CA0C8 - movs r0, 0x1 - bl LoadLeftHeaderGfxForIndex - movs r0, 0 - b _081C9D3E -_081C9CFA: - bl sub_81CA20C - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl sub_81C7FA0 - bl sub_81CA818 - bl sub_81CA714 - movs r0, 0 - b _081C9D3E -_081C9D14: - bl sub_81CA324 - cmp r0, 0 - bne _081C9D34 - bl sub_81C8010 - cmp r0, 0 - bne _081C9D34 - bl sub_81CA89C - cmp r0, 0 - bne _081C9D34 - bl sub_81CA7C4 - cmp r0, 0 - beq _081C9D38 -_081C9D34: - movs r0, 0x2 - b _081C9D3E -_081C9D38: - bl sub_81CA9D8 -_081C9D3C: - movs r0, 0x4 -_081C9D3E: - pop {r1} - bx r1 - thumb_func_end sub_81C9CA8 - - thumb_func_start sub_81C9D44 -sub_81C9D44: @ 81C9D44 - push {lr} - cmp r0, 0x1 - beq _081C9D72 - cmp r0, 0x1 - bgt _081C9D54 - cmp r0, 0 - beq _081C9D5E - b _081C9DD2 -_081C9D54: - cmp r0, 0x2 - beq _081C9D90 - cmp r0, 0x3 - beq _081C9DAA - b _081C9DD2 -_081C9D5E: - bl sub_81CA9C8 - bl sub_81CA2DC - movs r0, 0x1 - movs r1, 0 - bl sub_81C7FC4 - movs r0, 0 - b _081C9DD4 -_081C9D72: - bl sub_81CA324 - cmp r0, 0 - bne _081C9DCA - bl sub_81C8010 - cmp r0, 0 - bne _081C9DCA - bl sub_81CA0C8 - movs r0, 0 - bl LoadLeftHeaderGfxForIndex - movs r0, 0 - b _081C9DD4 -_081C9D90: - bl sub_81CA20C - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl sub_81C7FA0 - bl sub_81CA864 - bl sub_81CA714 - movs r0, 0 - b _081C9DD4 -_081C9DAA: - bl sub_81CA324 - cmp r0, 0 - bne _081C9DCA - bl sub_81C8010 - cmp r0, 0 - bne _081C9DCA - bl sub_81CA89C - cmp r0, 0 - bne _081C9DCA - bl sub_81CA7C4 - cmp r0, 0 - beq _081C9DCE -_081C9DCA: - movs r0, 0x2 - b _081C9DD4 -_081C9DCE: - bl sub_81CA9D8 -_081C9DD2: - movs r0, 0x4 -_081C9DD4: - pop {r1} - bx r1 - thumb_func_end sub_81C9D44 - - thumb_func_start sub_81C9DD8 -sub_81C9DD8: @ 81C9DD8 - push {lr} - cmp r0, 0x1 - beq _081C9E04 - cmp r0, 0x1 - bgt _081C9DE8 - cmp r0, 0 - beq _081C9DF2 - b _081C9E50 -_081C9DE8: - cmp r0, 0x2 - beq _081C9E1A - cmp r0, 0x3 - beq _081C9E30 - b _081C9E50 -_081C9DF2: - bl sub_81CA9C8 - bl sub_81CA2DC - movs r0, 0x5 - bl PlaySE - movs r0, 0 - b _081C9E52 -_081C9E04: - bl sub_81CA324 - cmp r0, 0 - bne _081C9E48 - movs r0, 0x7 - bl LoadLeftHeaderGfxForIndex - bl sub_81CA0C8 - movs r0, 0 - b _081C9E52 -_081C9E1A: - bl sub_81CA20C - movs r0, 0x7 - movs r1, 0 - movs r2, 0 - bl sub_81C7FA0 - bl sub_81CA714 - movs r0, 0 - b _081C9E52 -_081C9E30: - bl sub_81CA324 - cmp r0, 0 - bne _081C9E48 - bl sub_81C8010 - cmp r0, 0 - bne _081C9E48 - bl sub_81CA89C - cmp r0, 0 - beq _081C9E4C -_081C9E48: - movs r0, 0x2 - b _081C9E52 -_081C9E4C: - bl sub_81CA9D8 -_081C9E50: - movs r0, 0x4 -_081C9E52: - pop {r1} - bx r1 - thumb_func_end sub_81C9DD8 - - thumb_func_start sub_81C9E58 -sub_81C9E58: @ 81C9E58 - push {lr} - cmp r0, 0x1 - beq _081C9E86 - cmp r0, 0x1 - bgt _081C9E68 - cmp r0, 0 - beq _081C9E72 - b _081C9EC2 -_081C9E68: - cmp r0, 0x2 - beq _081C9E9E - cmp r0, 0x3 - beq _081C9EAA - b _081C9EC2 -_081C9E72: - bl sub_81CA9C8 - bl sub_81CA2DC - movs r0, 0x7 - movs r1, 0 - bl sub_81C7FC4 - movs r0, 0 - b _081C9EC4 -_081C9E86: - bl sub_81CA324 - cmp r0, 0 - bne _081C9EBA - bl sub_81C8010 - cmp r0, 0 - bne _081C9EBA - bl sub_81CA0C8 - movs r0, 0 - b _081C9EC4 -_081C9E9E: - bl sub_81CA20C - bl sub_81CA714 - movs r0, 0 - b _081C9EC4 -_081C9EAA: - bl sub_81CA324 - cmp r0, 0 - bne _081C9EBA - bl sub_81CA89C - cmp r0, 0 - beq _081C9EBE -_081C9EBA: - movs r0, 0x2 - b _081C9EC4 -_081C9EBE: - bl sub_81CA9D8 -_081C9EC2: - movs r0, 0x4 -_081C9EC4: - pop {r1} - bx r1 - thumb_func_end sub_81C9E58 - - thumb_func_start sub_81C9EC8 -sub_81C9EC8: @ 81C9EC8 - push {lr} - cmp r0, 0 - beq _081C9ED4 - cmp r0, 0x1 - beq _081C9EE2 - b _081C9EF0 -_081C9ED4: - movs r0, 0x20 - bl PlaySE - bl sub_81CA770 - movs r0, 0 - b _081C9EF2 -_081C9EE2: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081C9EF0 - movs r0, 0x2 - b _081C9EF2 -_081C9EF0: - movs r0, 0x4 -_081C9EF2: - pop {r1} - bx r1 - thumb_func_end sub_81C9EC8 - - thumb_func_start sub_81C9EF8 -sub_81C9EF8: @ 81C9EF8 - push {lr} - cmp r0, 0 - beq _081C9F04 - cmp r0, 0x1 - beq _081C9F12 - b _081C9F20 -_081C9F04: - movs r0, 0x5 - bl PlaySE - bl sub_81CA714 - movs r0, 0 - b _081C9F22 -_081C9F12: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081C9F20 - movs r0, 0x2 - b _081C9F22 -_081C9F20: - movs r0, 0x4 -_081C9F22: - pop {r1} - bx r1 - thumb_func_end sub_81C9EF8 - - thumb_func_start sub_81C9F28 -sub_81C9F28: @ 81C9F28 - push {lr} - cmp r0, 0x1 - beq _081C9F52 - cmp r0, 0x1 - bgt _081C9F38 - cmp r0, 0 - beq _081C9F42 - b _081C9FBC -_081C9F38: - cmp r0, 0x2 - beq _081C9F96 - cmp r0, 0x3 - beq _081C9FB0 - b _081C9FBC -_081C9F42: - bl sub_81C98C4 - lsls r0, 16 - lsrs r0, 16 - bl sub_81C7BA4 - movs r0, 0 - b _081C9FBE -_081C9F52: - bl IsDma3ManagerBusyWithBgCopy_ - cmp r0, 0 - bne _081C9FB8 - bl sub_81C7880 - bl sub_81CA9C8 - bl sub_81CA2DC - bl sub_81C9894 - cmp r0, 0x3 - beq _081C9F7A - cmp r0, 0x4 - bne _081C9F84 - movs r0, 0x7 - movs r1, 0 - bl sub_81C7FC4 -_081C9F7A: - movs r0, 0x1 - movs r1, 0 - bl sub_81C7FC4 - b _081C9F8C -_081C9F84: - movs r0, 0 - movs r1, 0 - bl sub_81C7FC4 -_081C9F8C: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - b _081C9FBE -_081C9F96: - bl sub_81CA324 - cmp r0, 0 - bne _081C9FB8 - bl sub_81C8010 - cmp r0, 0 - bne _081C9FB8 - movs r0, 0 - bl sub_81C7AC0 - movs r0, 0 - b _081C9FBE -_081C9FB0: - bl IsPaletteFadeActive - cmp r0, 0 - beq _081C9FBC -_081C9FB8: - movs r0, 0x2 - b _081C9FBE -_081C9FBC: - movs r0, 0x4 -_081C9FBE: - pop {r1} - bx r1 - thumb_func_end sub_81C9F28 - - thumb_func_start sub_81C9FC4 -sub_81C9FC4: @ 81C9FC4 - push {r4,r5,lr} - movs r5, 0 - ldr r4, =gUnknown_086201C4 -_081C9FCA: - adds r0, r4, 0 - bl LoadCompressedSpriteSheet - adds r4, 0x8 - adds r5, 0x1 - cmp r5, 0x1 - bls _081C9FCA - ldr r0, =gUnknown_086201D4 - bl Pokenav_AllocAndLoadPalettes - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C9FC4 - - thumb_func_start sub_81C9FEC -sub_81C9FEC: @ 81C9FEC - push {lr} - movs r0, 0x3 - bl FreeSpriteTilesByTag - movs r0, 0x1 - bl FreeSpriteTilesByTag - movs r0, 0x4 - bl FreeSpritePaletteByTag - movs r0, 0x5 - bl FreeSpritePaletteByTag - movs r0, 0x6 - bl FreeSpritePaletteByTag - movs r0, 0x7 - bl FreeSpritePaletteByTag - movs r0, 0x8 - bl FreeSpritePaletteByTag - movs r0, 0x3 - bl FreeSpritePaletteByTag - bl sub_81CA094 - bl sub_81CA698 - pop {r0} - bx r0 - thumb_func_end sub_81C9FEC - - thumb_func_start sub_81CA02C -sub_81CA02C: @ 81CA02C - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0x2 - bl GetSubstructPtr - movs r2, 0 - adds r0, 0x2C - mov r8, r0 -_081CA03E: - movs r4, 0 - lsls r0, r2, 2 - lsls r1, r2, 4 - adds r7, r2, 0x1 - adds r0, r2 - lsls r0, 18 - movs r2, 0xA0 - lsls r2, 14 - adds r5, r0, r2 - mov r0, r8 - adds r6, r1, r0 -_081CA054: - ldr r0, =gUnknown_0862034C - movs r1, 0x8C - asrs r2, r5, 16 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - stm r6!, {r1} - lsls r0, r4, 5 - strh r0, [r1, 0x24] - adds r4, 0x1 - cmp r4, 0x3 - ble _081CA054 - adds r2, r7, 0 - cmp r2, 0x5 - ble _081CA03E - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA02C - - thumb_func_start sub_81CA094 -sub_81CA094: @ 81CA094 - push {r4-r7,lr} - movs r0, 0x2 - bl GetSubstructPtr - movs r1, 0 - adds r7, r0, 0 - adds r7, 0x2C -_081CA0A2: - lsls r0, r1, 4 - adds r6, r1, 0x1 - adds r4, r0, r7 - movs r5, 0x3 -_081CA0AA: - ldr r0, [r4] - bl FreeSpriteOamMatrix - ldm r4!, {r0} - bl DestroySprite - subs r5, 0x1 - cmp r5, 0 - bge _081CA0AA - adds r1, r6, 0 - cmp r1, 0x5 - ble _081CA0A2 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81CA094 - - thumb_func_start sub_81CA0C8 -sub_81CA0C8: @ 81CA0C8 - push {lr} - bl sub_81C9894 - lsls r2, r0, 3 - subs r2, r0 - lsls r2, 2 - ldr r1, =gUnknown_08620240+4 - adds r0, r2, r1 - subs r1, 0x4 - adds r2, r1 - ldrh r1, [r2] - ldrh r2, [r2, 0x2] - bl sub_81CA0EC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA0C8 - - thumb_func_start sub_81CA0EC -sub_81CA0EC: @ 81CA0EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - adds r6, r0, 0 - str r1, [sp, 0x14] - str r2, [sp] - movs r0, 0x2 - bl GetSubstructPtr - mov r10, r0 - movs r0, 0x3 - bl GetSpriteTileStartByTag - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x4] - movs r1, 0 -_081CA114: - ldr r0, [r6] - cmp r0, 0 - beq _081CA1B0 - movs r5, 0 - lsls r2, r1, 4 - mov r0, r10 - adds r0, 0x2C - lsls r3, r1, 2 - mov r9, r3 - movs r4, 0x10 - add r4, r10 - mov r8, r4 - adds r7, r6, 0x4 - str r7, [sp, 0xC] - ldr r3, [sp, 0x14] - ldr r4, [sp] - adds r3, r4 - str r3, [sp, 0x8] - adds r1, 0x1 - str r1, [sp, 0x10] - adds r4, r2, r0 -_081CA13E: - ldr r3, [r4] - ldr r0, [r6] - ldrh r2, [r0] - ldr r7, [sp, 0x4] - adds r2, r7 - lsls r0, r5, 3 - adds r2, r0 - ldr r1, =0x000003ff - adds r0, r1, 0 - ands r2, r0 - ldrh r0, [r3, 0x4] - ldr r7, =0xfffffc00 - adds r1, r7, 0 - ands r0, r1 - orrs r0, r2 - strh r0, [r3, 0x4] - ldr r0, [r6] - ldrh r0, [r0, 0x2] - adds r0, 0x4 - lsls r0, 16 - lsrs r0, 16 - bl IndexOfSpritePaletteTag - ldr r3, [r4] - lsls r0, 4 - ldrb r2, [r3, 0x5] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x5] - ldr r2, [r4] - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r4] - mov r1, sp - ldrh r1, [r1, 0x14] - strh r1, [r0, 0x22] - ldr r1, [r4] - movs r0, 0x8C - strh r0, [r1, 0x20] - ldm r4!, {r1} - lsls r0, r5, 5 - strh r0, [r1, 0x24] - adds r5, 0x1 - cmp r5, 0x3 - ble _081CA13E - mov r1, r8 - add r1, r9 - movs r0, 0x1 - b _081CA1EC - .pool -_081CA1B0: - lsls r2, r1, 4 - mov r0, r10 - adds r0, 0x2C - lsls r3, r1, 2 - mov r9, r3 - movs r4, 0x10 - add r4, r10 - mov r8, r4 - adds r6, 0x4 - str r6, [sp, 0xC] - ldr r7, [sp, 0x14] - ldr r3, [sp] - adds r7, r3 - str r7, [sp, 0x8] - adds r1, 0x1 - str r1, [sp, 0x10] - movs r3, 0x4 - adds r2, r0 - movs r5, 0x3 -_081CA1D6: - ldm r2!, {r1} - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r3 - strb r0, [r1] - subs r5, 0x1 - cmp r5, 0 - bge _081CA1D6 - mov r1, r8 - add r1, r9 - movs r0, 0 -_081CA1EC: - str r0, [r1] - ldr r6, [sp, 0xC] - ldr r4, [sp, 0x8] - str r4, [sp, 0x14] - ldr r1, [sp, 0x10] - cmp r1, 0x5 - ble _081CA114 - 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_81CA0EC - - thumb_func_start sub_81CA20C -sub_81CA20C: @ 81CA20C - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0x2 - bl GetSubstructPtr - adds r6, r0, 0 - bl sub_81C98A4 - mov r8, r0 - movs r7, 0 - movs r5, 0 - adds r4, r6, 0 - adds r4, 0x2C -_081CA228: - lsls r0, r5, 2 - adds r1, r6, 0 - adds r1, 0x10 - adds r1, r0 - ldr r0, [r1] - cmp r0, 0 - beq _081CA25C - adds r0, r7, 0 - adds r7, 0x1 - cmp r0, r8 - bne _081CA244 - movs r2, 0x82 - strb r5, [r6, 0xB] - b _081CA246 -_081CA244: - movs r2, 0x8C -_081CA246: - adds r0, r4, 0 - movs r1, 0x80 - lsls r1, 1 - movs r3, 0xC - bl sub_81CA35C - adds r0, r4, 0 - movs r1, 0 - bl sub_81CA448 - b _081CA264 -_081CA25C: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81CA448 -_081CA264: - adds r4, 0x10 - adds r5, 0x1 - cmp r5, 0x5 - ble _081CA228 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81CA20C - - thumb_func_start sub_81CA278 -sub_81CA278: @ 81CA278 - push {r4,r5,lr} - movs r0, 0x2 - bl GetSubstructPtr - adds r4, r0, 0 - bl sub_81C98A4 - adds r3, r0, 0 - movs r2, 0 - movs r5, 0 - ldr r0, [r4, 0x10] - cmp r0, 0 - beq _081CA298 - cmp r5, r3 - beq _081CA2B2 -_081CA296: - adds r5, 0x1 -_081CA298: - adds r2, 0x1 - cmp r2, 0x5 - bgt _081CA2B2 - lsls r0, r2, 2 - adds r1, r4, 0 - adds r1, 0x10 - adds r1, r0 - ldr r0, [r1] - cmp r0, 0 - beq _081CA298 - cmp r5, r3 - bne _081CA296 - adds r5, r2, 0 -_081CA2B2: - ldrb r0, [r4, 0xB] - lsls r0, 4 - adds r0, 0x2C - adds r0, r4, r0 - movs r1, 0x82 - movs r2, 0x8C - movs r3, 0x4 - bl sub_81CA35C - lsls r0, r5, 4 - adds r0, 0x2C - adds r0, r4, r0 - movs r1, 0x8C - movs r2, 0x82 - movs r3, 0x4 - bl sub_81CA35C - strb r5, [r4, 0xB] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CA278 - - thumb_func_start sub_81CA2DC -sub_81CA2DC: @ 81CA2DC - push {r4-r6,lr} - movs r0, 0x2 - bl GetSubstructPtr - adds r6, r0, 0 - movs r5, 0 - adds r4, r6, 0 - adds r4, 0x2C -_081CA2EC: - lsls r0, r5, 2 - adds r1, r6, 0 - adds r1, 0x10 - adds r1, r0 - ldr r0, [r1] - cmp r0, 0 - beq _081CA316 - ldrb r0, [r6, 0xB] - cmp r0, r5 - beq _081CA310 - adds r0, r4, 0 - movs r1, 0x8C - movs r2, 0x80 - lsls r2, 1 - movs r3, 0x8 - bl sub_81CA35C - b _081CA316 -_081CA310: - adds r0, r4, 0 - bl sub_81CA3B4 -_081CA316: - adds r4, 0x10 - adds r5, 0x1 - cmp r5, 0x5 - ble _081CA2EC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81CA2DC - - thumb_func_start sub_81CA324 -sub_81CA324: @ 81CA324 - push {r4,lr} - movs r0, 0x2 - bl GetSubstructPtr - adds r3, r0, 0 - movs r2, 0 - ldr r4, =SpriteCallbackDummy - adds r1, r3, 0 - adds r1, 0x2C -_081CA336: - ldr r0, [r1] - ldr r0, [r0, 0x1C] - cmp r0, r4 - bne _081CA354 - adds r1, 0x10 - adds r2, 0x1 - cmp r2, 0x5 - ble _081CA336 - ldrb r0, [r3, 0xC] - cmp r0, 0 - bne _081CA354 - movs r0, 0 - b _081CA356 - .pool -_081CA354: - movs r0, 0x1 -_081CA356: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CA324 - - thumb_func_start sub_81CA35C -sub_81CA35C: @ 81CA35C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r4, r0, 0 - adds r5, r1, 0 - mov r9, r2 - adds r6, r3, 0 - ldr r0, =sub_81CA474 - mov r8, r0 - subs r0, r2, r5 - lsls r0, 4 - adds r1, r6, 0 - bl __divsi3 - adds r3, r0, 0 - movs r1, 0x3 - lsls r2, r5, 4 -_081CA380: - ldr r0, [r4] - strh r5, [r0, 0x20] - ldr r0, [r4] - strh r6, [r0, 0x2E] - ldr r0, [r4] - strh r3, [r0, 0x30] - ldr r0, [r4] - strh r2, [r0, 0x32] - ldr r0, [r4] - mov r7, r9 - strh r7, [r0, 0x3C] - ldm r4!, {r0} - mov r7, r8 - str r7, [r0, 0x1C] - subs r1, 0x1 - cmp r1, 0 - bge _081CA380 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA35C - - thumb_func_start sub_81CA3B4 -sub_81CA3B4: @ 81CA3B4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - movs r0, 0x2 - bl GetSubstructPtr - adds r7, r0, 0 - movs r5, 0 - mov r8, r5 -_081CA3C8: - ldr r2, [r4] - ldrb r1, [r2, 0x1] - movs r3, 0xD - negs r3, r3 - adds r0, r3, 0 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r2, 0x1] - ldr r2, [r4] - ldrb r0, [r2, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r2, 0x1] - ldr r1, [r4] - ldr r0, =sub_81CA4AC - str r0, [r1, 0x1C] - movs r6, 0x8 - strh r6, [r1, 0x2E] - ldr r0, [r4] - mov r1, r8 - strh r1, [r0, 0x30] - ldr r0, [r4] - strh r5, [r0, 0x3C] - ldr r0, [r4] - bl InitSpriteAffineAnim - ldm r4!, {r0} - movs r1, 0 - bl StartSpriteAffineAnim - adds r5, 0x1 - cmp r5, 0x3 - ble _081CA3C8 - movs r0, 0x52 - movs r1, 0x10 - bl SetGpuReg - ldr r0, =sub_81CA580 - movs r1, 0x3 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r6, [r1, 0x8] - ldrb r0, [r7, 0xC] - adds r0, 0x1 - strb r0, [r7, 0xC] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA3B4 - - thumb_func_start sub_81CA448 -sub_81CA448: @ 81CA448 - push {r4-r6,lr} - adds r5, r0, 0 - movs r0, 0x1 - ands r1, r0 - lsls r4, r1, 2 - movs r6, 0x5 - negs r6, r6 - movs r3, 0x3 -_081CA458: - ldm r5!, {r0} - adds r0, 0x3E - ldrb r2, [r0] - adds r1, r6, 0 - ands r1, r2 - orrs r1, r4 - strb r1, [r0] - subs r3, 0x1 - cmp r3, 0 - bge _081CA458 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81CA448 - - thumb_func_start sub_81CA474 -sub_81CA474: @ 81CA474 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - subs r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _081CA49A - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - b _081CA4A2 -_081CA49A: - ldrh r0, [r2, 0x3C] - strh r0, [r2, 0x20] - ldr r0, =SpriteCallbackDummy - str r0, [r2, 0x1C] -_081CA4A2: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA474 - - thumb_func_start sub_81CA4AC -sub_81CA4AC: @ 81CA4AC - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _081CA574 - movs r0, 0x30 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _081CA4E2 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - movs r0, 0x80 - lsls r0, 1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - strh r5, [r4, 0x24] - b _081CA578 -_081CA4E2: - ldrh r0, [r4, 0x32] - adds r0, 0x10 - strh r0, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - asrs r1, r0, 3 - adds r0, r1, 0 - subs r0, 0x20 - lsrs r1, r0, 31 - adds r0, r1 - asrs r1, r0, 1 - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0x1 - beq _081CA518 - cmp r0, 0x1 - bgt _081CA50A - cmp r0, 0 - beq _081CA514 - b _081CA526 -_081CA50A: - cmp r0, 0x2 - beq _081CA51C - cmp r0, 0x3 - beq _081CA520 - b _081CA526 -_081CA514: - negs r1, r1 - b _081CA520 -_081CA518: - negs r0, r1 - b _081CA524 -_081CA51C: - strh r1, [r4, 0x24] - b _081CA526 -_081CA520: - lsls r0, r1, 1 - adds r0, r1 -_081CA524: - strh r0, [r4, 0x24] -_081CA526: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081CA578 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - lsrs r1, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - adds r0, r4, 0 - movs r3, 0 - bl CalcCenterToCornerVec - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0xD - negs r1, r1 - ands r0, r1 - strb r0, [r4, 0x1] - ldr r0, =SpriteCallbackDummy - str r0, [r4, 0x1C] - b _081CA578 - .pool -_081CA574: - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] -_081CA578: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CA4AC - - thumb_func_start sub_81CA580 -sub_81CA580: @ 81CA580 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4] - movs r1, 0 - ldrsh r2, [r4, r1] - cmp r2, 0 - bne _081CA634 - movs r0, 0x2 - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _081CA5AC - cmp r1, 0x1 - beq _081CA5CC - b _081CA638 - .pool -_081CA5AC: - movs r0, 0x10 - strh r0, [r4, 0x4] - strh r2, [r4, 0x6] - movs r1, 0xFC - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0x10 - bl SetGpuReg - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - b _081CA638 -_081CA5CC: - ldrh r0, [r4, 0x8] - ands r1, r0 - cmp r1, 0 - beq _081CA5E4 - ldrh r0, [r4, 0x4] - subs r0, 0x3 - strh r0, [r4, 0x4] - lsls r0, 16 - cmp r0, 0 - bge _081CA5F6 - strh r2, [r4, 0x4] - b _081CA5F6 -_081CA5E4: - ldrh r0, [r4, 0x6] - adds r0, 0x3 - strh r0, [r4, 0x6] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _081CA5F6 - movs r0, 0x10 - strh r0, [r4, 0x6] -_081CA5F6: - ldrh r1, [r4, 0x6] - lsls r1, 8 - ldrh r0, [r4, 0x4] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bne _081CA638 - movs r0, 0x2 - bl GetSubstructPtr - ldrb r1, [r0, 0xC] - subs r1, 0x1 - strb r1, [r0, 0xC] - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - adds r0, r5, 0 - bl DestroyTask - b _081CA638 -_081CA634: - subs r0, 0x1 - strh r0, [r4] -_081CA638: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CA580 - - thumb_func_start sub_81CA640 -sub_81CA640: @ 81CA640 - push {r4,lr} - movs r0, 0x2 - bl GetSubstructPtr - adds r4, r0, 0 - ldr r0, =gUnknown_0862036C - movs r1, 0x10 - movs r2, 0x60 - movs r3, 0x4 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - str r1, [r4, 0x28] - bl sub_81C98D4 - cmp r0, 0 - beq _081CA684 - ldr r1, [r4, 0x28] - ldr r0, =sub_81CA6AC - str r0, [r1, 0x1C] - b _081CA690 - .pool -_081CA684: - ldr r0, [r4, 0x28] - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_081CA690: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CA640 - - thumb_func_start sub_81CA698 -sub_81CA698: @ 81CA698 - push {lr} - movs r0, 0x2 - bl GetSubstructPtr - ldr r0, [r0, 0x28] - bl DestroySprite - pop {r0} - bx r0 - thumb_func_end sub_81CA698 - - thumb_func_start sub_81CA6AC -sub_81CA6AC: @ 81CA6AC - 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, 0x8 - ble _081CA6DA - movs r0, 0 - strh r0, [r3, 0x2E] - 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] -_081CA6DA: - pop {r0} - bx r0 - thumb_func_end sub_81CA6AC - - thumb_func_start sub_81CA6E0 -sub_81CA6E0: @ 81CA6E0 - push {r4,lr} - movs r0, 0x2 - bl GetSubstructPtr - adds r4, r0, 0 - ldr r0, =gUnknown_086202CC - bl AddWindow - strh r0, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - ldrb r0, [r4, 0x8] - movs r1, 0x66 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x8] - movs r1, 0x3 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA6E0 - - thumb_func_start sub_81CA714 -sub_81CA714: @ 81CA714 - push {r4-r6,lr} - sub sp, 0xC - movs r0, 0x2 - bl GetSubstructPtr - adds r5, r0, 0 - bl sub_81C98B4 - ldr r1, =gUnknown_086202D4 - lsls r0, 2 - adds r0, r1 - ldr r6, [r0] - movs r2, 0x1 - negs r2, r2 - movs r0, 0x1 - adds r1, r6, 0 - bl GetStringWidth - adds r4, r0, 0 - ldrb r0, [r5, 0x8] - movs r1, 0x66 - bl FillWindowPixelBuffer - ldrb r0, [r5, 0x8] - movs r2, 0xC0 - subs r2, r4 - lsrs r2, 1 - lsls r2, 24 - lsrs r2, 24 - ldr r1, =gUnknown_0862030C - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r6, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x1 - bl AddTextPrinterParameterized3 - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA714 - - thumb_func_start sub_81CA770 -sub_81CA770: @ 81CA770 - push {r4-r6,lr} - sub sp, 0xC - movs r0, 0x2 - bl GetSubstructPtr - adds r5, r0, 0 - ldr r6, =gText_NoRibbonWinners - movs r2, 0x1 - negs r2, r2 - movs r0, 0x1 - adds r1, r6, 0 - bl GetStringWidth - adds r4, r0, 0 - ldrb r0, [r5, 0x8] - movs r1, 0x66 - bl FillWindowPixelBuffer - ldrb r0, [r5, 0x8] - movs r2, 0xC0 - subs r2, r4 - lsrs r2, 1 - lsls r2, 24 - lsrs r2, 24 - ldr r1, =gUnknown_0862030F - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r6, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x1 - bl AddTextPrinterParameterized3 - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA770 - - thumb_func_start sub_81CA7C4 -sub_81CA7C4: @ 81CA7C4 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_81CA7C4 - - thumb_func_start sub_81CA7D4 -sub_81CA7D4: @ 81CA7D4 - push {r4,lr} - movs r0, 0x2 - bl GetSubstructPtr - adds r4, r0, 0 - ldr r0, =sub_81CA808 - movs r1, 0x2 - bl CreateTask - strb r0, [r4, 0xA] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA7D4 - - thumb_func_start sub_81CA7F4 -sub_81CA7F4: @ 81CA7F4 - push {lr} - movs r0, 0x2 - bl GetSubstructPtr - ldrb r0, [r0, 0xA] - bl DestroyTask - pop {r0} - bx r0 - thumb_func_end sub_81CA7F4 - - thumb_func_start sub_81CA808 -sub_81CA808: @ 81CA808 - push {lr} - movs r0, 0x3 - movs r1, 0x80 - movs r2, 0x1 - bl ChangeBgX - pop {r0} - bx r0 - thumb_func_end sub_81CA808 - - thumb_func_start sub_81CA818 -sub_81CA818: @ 81CA818 - push {r4,r5,lr} - ldr r0, =sub_81CA8B0 - movs r1, 0x3 - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =gUnknown_0861FC78 + 2 - adds r0, r4, 0 - movs r1, 0x1 - adds r2, r5, 0 - bl SetWordTaskArg - adds r5, 0xC - adds r0, r4, 0 - movs r1, 0x3 - adds r2, r5, 0 - bl SetWordTaskArg - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA818 - - thumb_func_start sub_81CA850 -sub_81CA850: @ 81CA850 - push {lr} - ldr r0, =gUnknown_0861FC78 + 0xE - movs r1, 0x31 - movs r2, 0x4 - bl CopyPaletteIntoBufferUnfaded - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA850 - - thumb_func_start sub_81CA864 -sub_81CA864: @ 81CA864 - push {r4,r5,lr} - ldr r0, =sub_81CA8B0 - movs r1, 0x3 - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =gUnknown_0861FC78 + 0xE - adds r0, r4, 0 - movs r1, 0x1 - adds r2, r5, 0 - bl SetWordTaskArg - subs r5, 0xC - adds r0, r4, 0 - movs r1, 0x3 - adds r2, r5, 0 - bl SetWordTaskArg - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA864 - - thumb_func_start sub_81CA89C -sub_81CA89C: @ 81CA89C - push {lr} - ldr r0, =sub_81CA8B0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CA89C - - thumb_func_start sub_81CA8B0 -sub_81CA8B0: @ 81CA8B0 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - adds r0, r6, 0 - movs r1, 0x1 - bl GetWordTaskArg - adds r5, r0, 0 - adds r0, r6, 0 - movs r1, 0x3 - bl GetWordTaskArg - adds r1, r0, 0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - add r0, sp, 0x8 - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r2, 0x2 - movs r3, 0xC - bl sub_81C79BC - add r0, sp, 0x8 - movs r1, 0x31 - movs r2, 0x4 - bl LoadPalette - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0xC - bne _081CA908 - adds r0, r6, 0 - bl DestroyTask -_081CA908: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA8B0 - - thumb_func_start sub_81CA914 -sub_81CA914: @ 81CA914 - push {lr} - bl TransferPlttBuffer - bl LoadOam - bl ProcessSpriteCopyRequests - bl ScanlineEffect_InitHBlankDmaTransfer - pop {r0} - bx r0 - thumb_func_end sub_81CA914 - - thumb_func_start titlescreen_0 -titlescreen_0: @ 81CA92C - push {lr} - movs r0, 0x50 - movs r1, 0x90 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl SetGpuRegBits - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuRegBits - movs r0, 0x4A - movs r1, 0x1F - bl SetGpuRegBits - movs r0, 0x44 - movs r1, 0xA0 - bl SetGpuRegBits - bl ScanlineEffect_Stop - bl sub_81CAA3C - ldr r2, =gUnknown_08620384 - ldr r0, [r2] - ldr r1, [r2, 0x4] - ldr r2, [r2, 0x8] - bl ScanlineEffect_SetParams - ldr r0, =sub_81CA914 - bl SetVBlankCallback_ - ldr r0, =sub_81CA9EC - movs r1, 0x3 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end titlescreen_0 - - thumb_func_start sub_81CA994 -sub_81CA994: @ 81CA994 - push {lr} - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl ClearGpuRegBits - bl ScanlineEffect_Stop - ldr r0, =sub_81CA9EC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - bl SetPokenavVBlankCallback - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA994 - - thumb_func_start sub_81CA9C8 -sub_81CA9C8: @ 81CA9C8 - push {lr} - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - pop {r0} - bx r0 - thumb_func_end sub_81CA9C8 - - thumb_func_start sub_81CA9D8 -sub_81CA9D8: @ 81CA9D8 - push {lr} - bl sub_81CAA3C - movs r0, 0x50 - movs r1, 0x90 - bl SetGpuReg - pop {r0} - bx r0 - thumb_func_end sub_81CA9D8 - - thumb_func_start sub_81CA9EC -sub_81CA9EC: @ 81CA9EC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r2, r1, r0 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - lsls r0, 16 - cmp r0, 0 - ble _081CAA30 - movs r0, 0 - strh r0, [r2] - ldrh r0, [r2, 0x2] - adds r0, 0x3 - movs r1, 0x7F - ands r0, r1 - strh r0, [r2, 0x2] - ldr r1, =gSineTable - movs r3, 0x2 - ldrsh r0, [r2, r3] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 16 - asrs r1, 21 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x54 - bl SetGpuReg -_081CAA30: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA9EC - - thumb_func_start sub_81CAA3C -sub_81CAA3C: @ 81CAA3C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - bl sub_81C9894 - adds r4, r0, 0 - bl sub_81C98A4 - ldr r2, =gUnknown_08620240 - lsls r1, r4, 3 - subs r1, r4 - lsls r1, 2 - adds r1, r2 - ldrh r2, [r1, 0x2] - adds r4, r2, 0 - muls r4, r0 - ldrh r1, [r1] - adds r4, r1 - subs r4, 0x8 - mov r0, sp - movs r6, 0 - strh r6, [r0] - ldr r5, =gScanlineEffectRegBuffers - ldr r0, =0x010000a0 - mov r8, r0 - mov r0, sp - adds r1, r5, 0 - mov r2, r8 - bl CpuSet - mov r0, sp - adds r0, 0x2 - strh r6, [r0] - movs r1, 0xF0 - lsls r1, 3 - adds r1, r5 - mov r9, r1 - mov r2, r8 - bl CpuSet - add r0, sp, 0x4 - ldr r1, =0x000072f0 - adds r6, r1, 0 - strh r6, [r0] - lsls r4, 1 - adds r5, r4, r5 - ldr r1, =0x01000010 - mov r8, r1 - adds r1, r5, 0 - mov r2, r8 - bl CpuSet - mov r0, sp - adds r0, 0x6 - strh r6, [r0] - add r4, r9 - adds r1, r4, 0 - mov r2, r8 - bl CpuSet - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CAA3C - - thumb_func_start sub_81CAADC -sub_81CAADC: @ 81CAADC - push {lr} - bl sub_81CA9C8 - pop {r0} - bx r0 - thumb_func_end sub_81CAADC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokenav_unk_8.s b/asm/pokenav_unk_8.s deleted file mode 100644 index 6fcf213748..0000000000 --- a/asm/pokenav_unk_8.s +++ /dev/null @@ -1,1165 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - -@ File centered around AllocSubstruct(7) - - - - thumb_func_start sub_81CF0D0 -sub_81CF0D0: @ 81CF0D0 - push {lr} - movs r0, 0x7 - bl GetSubstructPtr - ldr r0, [r0, 0x20] - adds r0, 0x4 - pop {r1} - bx r1 - thumb_func_end sub_81CF0D0 - - thumb_func_start sub_81CF0E0 -sub_81CF0E0: @ 81CF0E0 - push {lr} - movs r0, 0x7 - bl GetSubstructPtr - ldr r0, [r0, 0x20] - ldrh r0, [r0] - pop {r1} - bx r1 - thumb_func_end sub_81CF0E0 - - thumb_func_start sub_81CF0F0 -sub_81CF0F0: @ 81CF0F0 - push {r4,lr} - movs r0, 0x7 - bl GetSubstructPtr - adds r4, r0, 0 - bl GetSelectedMatchCall - ldr r1, [r4, 0x20] - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1, 0x6] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CF0F0 - - thumb_func_start sub_81CF10C -sub_81CF10C: @ 81CF10C - push {lr} - movs r0, 0x7 - bl GetSubstructPtr - ldr r0, [r0, 0x20] - ldrh r0, [r0, 0x2] - pop {r1} - bx r1 - thumb_func_end sub_81CF10C - - thumb_func_start sub_81CF11C -sub_81CF11C: @ 81CF11C - push {lr} - ldr r2, =gUnknown_086233B4 - lsls r1, r0, 2 - adds r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CF11C - - thumb_func_start sub_81CF134 -sub_81CF134: @ 81CF134 - push {r4-r6,lr} - sub sp, 0x4 - movs r0, 0x7 - bl GetSubstructPtr - adds r6, r0, 0 - ldr r0, [r6, 0x20] - movs r1, 0 - strh r1, [r0] - ldr r0, [r6, 0x20] - strh r1, [r0, 0x2] - ldr r1, =0xffffff00 - ldr r0, [sp] - ands r0, r1 - movs r1, 0xE - orrs r0, r1 - str r0, [sp] - movs r5, 0 -_081CF158: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _081CF1AA - adds r0, r4, 0 - movs r1, 0x6 - bl GetMonData - cmp r0, 0 - bne _081CF1A4 - lsls r1, r5, 24 - lsrs r1, 16 - ldr r2, =0xffff00ff - ldr r0, [sp] - ands r0, r2 - orrs r0, r1 - str r0, [sp] - ldr r1, [r6, 0x14] - adds r0, r4, 0 - bl GetMonData - lsls r0, 16 - ldr r2, =0x0000ffff - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - adds r0, r6, 0 - mov r1, sp - bl sub_81CF2C4 -_081CF1A4: - adds r5, 0x1 - cmp r5, 0x5 - ble _081CF158 -_081CF1AA: - movs r0, 0x1 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CF134 - - thumb_func_start sub_81CF1C4 -sub_81CF1C4: @ 81CF1C4 - push {lr} - movs r0, 0x7 - bl GetSubstructPtr - movs r1, 0 - str r1, [r0, 0x10] - str r1, [r0, 0xC] - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_81CF1C4 - - thumb_func_start sub_81CF1D8 -sub_81CF1D8: @ 81CF1D8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r0, 0x7 - bl GetSubstructPtr - adds r6, r0, 0 - ldr r5, [r6, 0xC] - ldr r4, [r6, 0x10] - movs r0, 0 - mov r8, r0 - cmp r5, 0xD - bgt _081CF268 -_081CF1F4: - cmp r4, 0x1D - bgt _081CF260 - lsls r0, r5, 24 - lsrs r7, r0, 24 -_081CF1FC: - adds r0, r5, 0 - adds r1, r4, 0 - bl CheckBoxMonSanityAt - cmp r0, 0 - beq _081CF23A - ldr r1, =0xffffff00 - ldr r0, [sp] - ands r0, r1 - orrs r0, r7 - lsls r1, r4, 24 - lsrs r1, 24 - lsls r3, r1, 8 - ldr r2, =0xffff00ff - ands r0, r2 - orrs r0, r3 - str r0, [sp] - ldr r2, [r6, 0x14] - adds r0, r7, 0 - bl GetBoxMonDataAt - lsls r0, 16 - ldr r2, =0x0000ffff - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - adds r0, r6, 0 - mov r1, sp - bl sub_81CF2C4 -_081CF23A: - movs r0, 0x1 - add r8, r0 - adds r4, 0x1 - mov r0, r8 - cmp r0, 0xE - ble _081CF25C - str r5, [r6, 0xC] - str r4, [r6, 0x10] - movs r0, 0x3 - b _081CF26A - .pool -_081CF25C: - cmp r4, 0x1D - ble _081CF1FC -_081CF260: - movs r4, 0 - adds r5, 0x1 - cmp r5, 0xD - ble _081CF1F4 -_081CF268: - movs r0, 0x1 -_081CF26A: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81CF1D8 - - thumb_func_start sub_81CF278 -sub_81CF278: @ 81CF278 - push {r4-r6,lr} - movs r0, 0x7 - bl GetSubstructPtr - adds r5, r0, 0 - ldr r0, [r5, 0x20] - ldrh r6, [r0] - ldrh r4, [r0, 0x6] - movs r1, 0x1 - strh r1, [r0, 0x6] - movs r3, 0x1 - cmp r3, r6 - bge _081CF2B8 -_081CF292: - ldr r2, [r5, 0x20] - lsls r0, r3, 2 - adds r1, r2, r0 - ldrh r0, [r1, 0x6] - cmp r0, r4 - bne _081CF2AC - subs r0, r3, 0x1 - lsls r0, 2 - adds r0, r2, r0 - ldrh r0, [r0, 0x6] - strh r0, [r1, 0x6] - adds r0, r3, 0x1 - b _081CF2B2 -_081CF2AC: - adds r4, r0, 0 - adds r0, r3, 0x1 - strh r0, [r1, 0x6] -_081CF2B2: - adds r3, r0, 0 - cmp r3, r6 - blt _081CF292 -_081CF2B8: - movs r0, 0x1 - str r0, [r5, 0x18] - movs r0, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81CF278 - - thumb_func_start sub_81CF2C4 -sub_81CF2C4: @ 81CF2C4 - push {r4-r7,lr} - adds r5, r0, 0 - adds r7, r1, 0 - movs r1, 0 - ldr r0, [r5, 0x20] - ldrh r2, [r0] - lsrs r3, r2, 1 - cmp r2, r3 - beq _081CF2F4 - adds r6, r0, 0 - ldrh r4, [r7, 0x2] -_081CF2DA: - lsls r0, r3, 2 - adds r0, r6, r0 - ldrh r0, [r0, 0x6] - cmp r4, r0 - bls _081CF2E8 - adds r2, r3, 0 - b _081CF2EA -_081CF2E8: - adds r1, r3, 0x1 -_081CF2EA: - subs r0, r2, r1 - lsrs r0, 1 - adds r3, r1, r0 - cmp r2, r3 - bne _081CF2DA -_081CF2F4: - ldr r0, [r5, 0x20] - ldrh r2, [r0] - lsls r6, r3, 2 - cmp r2, r3 - bls _081CF318 - lsls r0, r2, 2 - subs r4, r0, 0x4 -_081CF302: - ldr r0, [r5, 0x20] - lsls r1, r2, 2 - adds r0, 0x4 - adds r1, r0, r1 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - subs r4, 0x4 - subs r2, 0x1 - cmp r2, r3 - bhi _081CF302 -_081CF318: - ldr r0, [r5, 0x20] - adds r0, 0x4 - adds r0, r6 - ldr r1, [r7] - str r1, [r0] - ldr r1, [r5, 0x20] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81CF2C4 - - thumb_func_start sub_81CF330 -sub_81CF330: @ 81CF330 - push {r4,lr} - movs r1, 0x81 - lsls r1, 4 - movs r0, 0x8 - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081CF360 - ldr r0, =sub_81CF418 - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r4, 0x4] - ldr r0, =sub_81CF3E4 - str r0, [r4] - movs r0, 0 - str r0, [r4, 0xC] - movs r0, 0x1 - b _081CF362 - .pool -_081CF360: - movs r0, 0 -_081CF362: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CF330 - - thumb_func_start sub_81CF368 -sub_81CF368: @ 81CF368 - push {r4,lr} - movs r1, 0x81 - lsls r1, 4 - movs r0, 0x8 - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081CF398 - ldr r0, =sub_81CF418 - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r4, 0x4] - ldr r0, =sub_81CF3E4 - str r0, [r4] - movs r0, 0x1 - str r0, [r4, 0xC] - b _081CF39A - .pool -_081CF398: - movs r0, 0 -_081CF39A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CF368 - - thumb_func_start sub_81CF3A0 -sub_81CF3A0: @ 81CF3A0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x8 - bl GetSubstructPtr - adds r5, r0, 0 - ldr r0, =gUnknown_08623598 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r5, 0x4] - ldr r0, =sub_81CF3E4 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CF3A0 - - thumb_func_start sub_81CF3D0 -sub_81CF3D0: @ 81CF3D0 - push {lr} - movs r0, 0x8 - bl GetSubstructPtr - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - bx r1 - thumb_func_end sub_81CF3D0 - - thumb_func_start sub_81CF3E4 -sub_81CF3E4: @ 81CF3E4 - push {lr} - movs r0, 0x8 - bl GetSubstructPtr - ldr r0, [r0, 0x4] - bl IsLoopedTaskActive - pop {r1} - bx r1 - thumb_func_end sub_81CF3E4 - - thumb_func_start sub_81CF3F8 -sub_81CF3F8: @ 81CF3F8 - push {r4,lr} - movs r0, 0x8 - bl GetSubstructPtr - adds r4, r0, 0 - bl sub_81C8234 - ldrb r0, [r4, 0x8] - bl RemoveWindow - movs r0, 0x8 - bl FreePokenavSubstruct - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CF3F8 - - thumb_func_start sub_81CF418 -sub_81CF418: @ 81CF418 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r0, 0x8 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x5 - bls _081CF42C - b _081CF56E -_081CF42C: - lsls r0, r4, 2 - ldr r1, =_081CF43C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CF43C: - .4byte _081CF454 - .4byte _081CF4AC - .4byte _081CF4C0 - .4byte _081CF4E0 - .4byte _081CF4F6 - .4byte _081CF55A -_081CF454: - ldr r0, =gUnknown_08623590 - movs r1, 0x2 - bl InitBgTemplates - ldr r1, =gUnknown_086233E4 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - adds r1, r5, 0 - adds r1, 0x10 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, =gUnknown_086234AC - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - ldr r0, =gUnknown_086233C4 - movs r1, 0x10 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - movs r0, 0x1 - bl CopyBgTilemapBufferToVram -_081CF498: - movs r0, 0 - b _081CF570 - .pool -_081CF4AC: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081CF56A - bl sub_81CF0C0 - cmp r0, 0 - beq _081CF56A - b _081CF498 -_081CF4C0: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081CF56A - ldr r0, =gUnknown_08623570 - movs r1, 0x20 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - bl sub_81CF88C - b _081CF498 - .pool -_081CF4E0: - bl sub_81C8224 - cmp r0, 0 - bne _081CF56A - adds r0, r5, 0 - bl sub_81CF7C8 - movs r0, 0x3 - bl sub_81C7BA4 - b _081CF498 -_081CF4F6: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081CF56A - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl HideBg - ldr r0, [r5, 0xC] - cmp r0, 0 - bne _081CF552 - bl sub_81C76AC - adds r4, r0, 0 - adds r4, 0x8 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl LoadLeftHeaderGfxForIndex - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl sub_81C7FA0 - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl sub_81C7FA0 -_081CF552: - movs r0, 0x1 - bl sub_81C7AC0 - b _081CF498 -_081CF55A: - bl IsPaletteFadeActive - cmp r0, 0 - bne _081CF56A - bl sub_81C8010 - cmp r0, 0 - beq _081CF56E -_081CF56A: - movs r0, 0x2 - b _081CF570 -_081CF56E: - movs r0, 0x4 -_081CF570: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CF418 - - thumb_func_start sub_81CF578 -sub_81CF578: @ 81CF578 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x8 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CF5C6 - cmp r4, 0x1 - bgt _081CF592 - cmp r4, 0 - beq _081CF59C - b _081CF5E6 -_081CF592: - cmp r4, 0x2 - beq _081CF5CE - cmp r4, 0x3 - beq _081CF5D8 - b _081CF5E6 -_081CF59C: - bl MatchCall_MoveCursorUp - cmp r0, 0x1 - beq _081CF5B4 - cmp r0, 0x1 - bgt _081CF5AE - cmp r0, 0 - beq _081CF5E6 - b _081CF5D4 -_081CF5AE: - cmp r0, 0x2 - beq _081CF5BE - b _081CF5D4 -_081CF5B4: - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - b _081CF5E8 -_081CF5BE: - movs r0, 0x5 - bl PlaySE - b _081CF5D4 -_081CF5C6: - bl sub_81C8630 - cmp r0, 0 - bne _081CF5E2 -_081CF5CE: - adds r0, r5, 0 - bl sub_81CF7F4 -_081CF5D4: - movs r0, 0 - b _081CF5E8 -_081CF5D8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CF5E6 -_081CF5E2: - movs r0, 0x2 - b _081CF5E8 -_081CF5E6: - movs r0, 0x4 -_081CF5E8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CF578 - - thumb_func_start sub_81CF5F0 -sub_81CF5F0: @ 81CF5F0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x8 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CF63E - cmp r4, 0x1 - bgt _081CF60A - cmp r4, 0 - beq _081CF614 - b _081CF65E -_081CF60A: - cmp r4, 0x2 - beq _081CF646 - cmp r4, 0x3 - beq _081CF650 - b _081CF65E -_081CF614: - bl MatchCall_MoveCursorDown - cmp r0, 0x1 - beq _081CF62C - cmp r0, 0x1 - bgt _081CF626 - cmp r0, 0 - beq _081CF65E - b _081CF64C -_081CF626: - cmp r0, 0x2 - beq _081CF636 - b _081CF64C -_081CF62C: - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - b _081CF660 -_081CF636: - movs r0, 0x5 - bl PlaySE - b _081CF64C -_081CF63E: - bl sub_81C8630 - cmp r0, 0 - bne _081CF65A -_081CF646: - adds r0, r5, 0 - bl sub_81CF7F4 -_081CF64C: - movs r0, 0 - b _081CF660 -_081CF650: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CF65E -_081CF65A: - movs r0, 0x2 - b _081CF660 -_081CF65E: - movs r0, 0x4 -_081CF660: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CF5F0 - - thumb_func_start sub_81CF668 -sub_81CF668: @ 81CF668 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x8 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CF6B6 - cmp r4, 0x1 - bgt _081CF682 - cmp r4, 0 - beq _081CF68C - b _081CF6D6 -_081CF682: - cmp r4, 0x2 - beq _081CF6BE - cmp r4, 0x3 - beq _081CF6C8 - b _081CF6D6 -_081CF68C: - bl MatchCall_PageUp - cmp r0, 0x1 - beq _081CF6A4 - cmp r0, 0x1 - bgt _081CF69E - cmp r0, 0 - beq _081CF6D6 - b _081CF6C4 -_081CF69E: - cmp r0, 0x2 - beq _081CF6AE - b _081CF6C4 -_081CF6A4: - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - b _081CF6D8 -_081CF6AE: - movs r0, 0x5 - bl PlaySE - b _081CF6C4 -_081CF6B6: - bl sub_81C8630 - cmp r0, 0 - bne _081CF6D2 -_081CF6BE: - adds r0, r5, 0 - bl sub_81CF7F4 -_081CF6C4: - movs r0, 0 - b _081CF6D8 -_081CF6C8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CF6D6 -_081CF6D2: - movs r0, 0x2 - b _081CF6D8 -_081CF6D6: - movs r0, 0x4 -_081CF6D8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CF668 - - thumb_func_start sub_81CF6E0 -sub_81CF6E0: @ 81CF6E0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x8 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CF72E - cmp r4, 0x1 - bgt _081CF6FA - cmp r4, 0 - beq _081CF704 - b _081CF74E -_081CF6FA: - cmp r4, 0x2 - beq _081CF736 - cmp r4, 0x3 - beq _081CF740 - b _081CF74E -_081CF704: - bl MatchCall_PageDown - cmp r0, 0x1 - beq _081CF71C - cmp r0, 0x1 - bgt _081CF716 - cmp r0, 0 - beq _081CF74E - b _081CF73C -_081CF716: - cmp r0, 0x2 - beq _081CF726 - b _081CF73C -_081CF71C: - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - b _081CF750 -_081CF726: - movs r0, 0x5 - bl PlaySE - b _081CF73C -_081CF72E: - bl sub_81C8630 - cmp r0, 0 - bne _081CF74A -_081CF736: - adds r0, r5, 0 - bl sub_81CF7F4 -_081CF73C: - movs r0, 0 - b _081CF750 -_081CF740: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CF74E -_081CF74A: - movs r0, 0x2 - b _081CF750 -_081CF74E: - movs r0, 0x4 -_081CF750: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CF6E0 - - thumb_func_start sub_81CF758 -sub_81CF758: @ 81CF758 - push {lr} - cmp r0, 0 - beq _081CF764 - cmp r0, 0x1 - beq _081CF778 - b _081CF790 -_081CF764: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_81C7AC0 - bl sub_81C78A0 - movs r0, 0 - b _081CF792 -_081CF778: - bl IsPaletteFadeActive - cmp r0, 0 - bne _081CF788 - bl MainMenuLoopedTaskIsBusy - cmp r0, 0 - beq _081CF78C -_081CF788: - movs r0, 0x2 - b _081CF792 -_081CF78C: - bl sub_81C7FDC -_081CF790: - movs r0, 0x4 -_081CF792: - pop {r1} - bx r1 - thumb_func_end sub_81CF758 - - thumb_func_start sub_81CF798 -sub_81CF798: @ 81CF798 - push {lr} - cmp r0, 0 - beq _081CF7A4 - cmp r0, 0x1 - beq _081CF7B4 - b _081CF7C0 -_081CF7A4: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_81C7AC0 - movs r0, 0 - b _081CF7C2 -_081CF7B4: - bl IsPaletteFadeActive - cmp r0, 0 - beq _081CF7C0 - movs r0, 0x2 - b _081CF7C2 -_081CF7C0: - movs r0, 0x4 -_081CF7C2: - pop {r1} - bx r1 - thumb_func_end sub_81CF798 - - thumb_func_start sub_81CF7C8 -sub_81CF7C8: @ 81CF7C8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_086235B4 - bl AddWindow - strh r0, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - ldrb r0, [r4, 0x8] - movs r1, 0x1 - bl CopyWindowToVram - adds r0, r4, 0 - bl sub_81CF7F4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CF7C8 - - thumb_func_start sub_81CF7F4 -sub_81CF7F4: @ 81CF7F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - mov r8, r0 - bl sub_81CF0F0 - adds r7, r0, 0 - bl DynamicPlaceholderTextUtil_Reset - ldr r4, =gStringVar1 - movs r0, 0 - adds r1, r4, 0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - movs r0, 0xFF - strb r0, [r4] - ldr r5, =gStringVar2 - ldr r1, =gText_NumberF700 - adds r0, r5, 0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - mov r1, r8 - ldrb r0, [r1, 0x8] - movs r1, 0x1 - mov r10, r1 - str r1, [sp] - movs r1, 0xFF - mov r9, r1 - str r1, [sp, 0x4] - movs r6, 0 - str r6, [sp, 0x8] - movs r1, 0x1 - adds r2, r5, 0 - movs r3, 0x4 - bl AddTextPrinterParameterized - adds r0, r4, 0 - adds r1, r7, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - mov r1, r8 - ldrb r0, [r1, 0x8] - mov r1, r10 - str r1, [sp] - mov r1, r9 - str r1, [sp, 0x4] - str r6, [sp, 0x8] - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x22 - bl AddTextPrinterParameterized - mov r1, r8 - ldrb r0, [r1, 0x8] - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CF7F4 - - thumb_func_start sub_81CF88C -sub_81CF88C: @ 81CF88C - push {r4,lr} - sub sp, 0x18 - bl sub_81CF0D0 - str r0, [sp] - bl sub_81CF0E0 - mov r1, sp - movs r4, 0 - strh r0, [r1, 0x4] - movs r0, 0x4 - strb r0, [r1, 0x8] - bl sub_81CF10C - mov r1, sp - strh r0, [r1, 0x6] - movs r0, 0xD - strb r0, [r1, 0x9] - movs r0, 0x11 - strb r0, [r1, 0xA] - mov r0, sp - movs r2, 0x1 - strb r2, [r0, 0xB] - movs r0, 0x8 - strb r0, [r1, 0xC] - movs r0, 0x2 - strb r0, [r1, 0xD] - mov r0, sp - strb r2, [r0, 0xE] - ldr r0, =sub_81CF8E4 - str r0, [sp, 0x10] - str r4, [sp, 0x14] - ldr r0, =gUnknown_08623594 - movs r2, 0 - bl sub_81C81D4 - add sp, 0x18 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CF88C - - thumb_func_start sub_81CF8E4 -sub_81CF8E4: @ 81CF8E4 - push {r4-r7,lr} - adds r2, r0, 0 - adds r6, r1, 0 - ldrb r0, [r2] - cmp r0, 0xE - bne _081CF924 - ldrb r1, [r2, 0x1] - movs r0, 0x64 - adds r4, r1, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - bl GetMonGender - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - bl GetLevelFromMonExp - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, =gStringVar3 - adds r0, r4, 0 - movs r1, 0x2 - bl GetMonData - b _081CF94A - .pool -_081CF924: - ldrb r0, [r2] - ldrb r1, [r2, 0x1] - bl GetBoxedMonPtr - adds r4, r0, 0 - bl GetBoxMonGender - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - bl GetLevelFromBoxMonExp - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, =gStringVar3 - adds r0, r4, 0 - movs r1, 0x2 - bl GetBoxMonData -_081CF94A: - ldr r4, =gStringVar3 - adds r0, r4, 0 - bl StringGetEnd10 - adds r0, r6, 0 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x3C - bl sub_81DB494 - adds r6, r0, 0 - cmp r5, 0 - beq _081CF974 - cmp r5, 0xFE - beq _081CF97C - ldr r1, =gUnknown_086235D4 - b _081CF97E - .pool -_081CF974: - ldr r1, =gUnknown_086235BC - b _081CF97E - .pool -_081CF97C: - ldr r1, =gUnknown_086235C8 -_081CF97E: - ldr r4, =gStringVar1 - adds r0, r4, 0 - bl StringCopy - movs r1, 0xBA - strb r1, [r0] - adds r0, 0x1 - movs r1, 0xF9 - strb r1, [r0] - adds r0, 0x1 - movs r1, 0x5 - strb r1, [r0] - adds r0, 0x1 - adds r1, r7, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r0, r6, 0 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x28 - bl sub_81DB494 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CF8E4 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokenav_unk_9.s b/asm/pokenav_unk_9.s deleted file mode 100644 index 7f9d5d15be..0000000000 --- a/asm/pokenav_unk_9.s +++ /dev/null @@ -1,1393 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - -@ File centered around AllocSubstruct(9) - - thumb_func_start sub_81CF9BC -sub_81CF9BC: @ 81CF9BC - push {r4,lr} - movs r0, 0x9 - movs r1, 0x20 - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081CF9FC - ldr r1, =0x000006ac - movs r0, 0x12 - bl AllocSubstruct - str r0, [r4, 0x1C] - cmp r0, 0 - beq _081CF9FC - ldr r0, =sub_81CFA68 - str r0, [r4] - ldr r0, =sub_81CFB74 - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r4, 0x4] - movs r0, 0 - str r0, [r4, 0x14] - movs r0, 0x1 - b _081CF9FE - .pool -_081CF9FC: - movs r0, 0 -_081CF9FE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CF9BC - - thumb_func_start sub_81CFA04 -sub_81CFA04: @ 81CFA04 - push {r4,lr} - movs r0, 0x9 - movs r1, 0x20 - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081CFA2C - movs r0, 0x12 - bl GetSubstructPtr - str r0, [r4, 0x1C] - ldr r0, =sub_81CFA88 - str r0, [r4] - movs r0, 0x1 - str r0, [r4, 0x14] - b _081CFA2E - .pool -_081CFA2C: - movs r0, 0 -_081CFA2E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CFA04 - - thumb_func_start sub_81CFA34 -sub_81CFA34: @ 81CFA34 - push {lr} - movs r0, 0x9 - bl GetSubstructPtr - ldr r1, [r0] - bl _call_via_r1 - pop {r1} - bx r1 - thumb_func_end sub_81CFA34 - - thumb_func_start sub_81CFA48 -sub_81CFA48: @ 81CFA48 - push {lr} - movs r0, 0x9 - bl GetSubstructPtr - ldr r0, [r0, 0x18] - cmp r0, 0 - bne _081CFA5C - movs r0, 0x12 - bl FreePokenavSubstruct -_081CFA5C: - movs r0, 0x9 - bl FreePokenavSubstruct - pop {r0} - bx r0 - thumb_func_end sub_81CFA48 - - thumb_func_start sub_81CFA68 -sub_81CFA68: @ 81CFA68 - push {r4,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x4] - bl IsLoopedTaskActive - cmp r0, 0 - bne _081CFA7A - ldr r0, =sub_81CFA88 - str r0, [r4] -_081CFA7A: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CFA68 - - thumb_func_start sub_81CFA88 -sub_81CFA88: @ 81CFA88 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r2, =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081CFAA0 - movs r0, 0x1 - b _081CFAFE - .pool -_081CFAA0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081CFAAC - movs r0, 0x2 - b _081CFAFE -_081CFAAC: - ldrh r1, [r2, 0x2E] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081CFABA - movs r0, 0x3 - b _081CFAFE -_081CFABA: - movs r0, 0x10 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _081CFACA - movs r0, 0x4 - b _081CFAFE -_081CFACA: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081CFAE0 - str r2, [r4, 0x18] - ldr r0, =sub_81CFB08 - str r0, [r4] - movs r0, 0x5 - b _081CFAFE - .pool -_081CFAE0: - movs r5, 0x1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _081CFAEE - movs r0, 0 - b _081CFAFE -_081CFAEE: - bl GetSelectedMatchCall - ldr r1, [r4, 0x1C] - strh r0, [r1, 0x2] - str r5, [r4, 0x18] - ldr r0, =sub_81CFB10 - str r0, [r4] - movs r0, 0x6 -_081CFAFE: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CFA88 - - thumb_func_start sub_81CFB08 -sub_81CFB08: @ 81CFB08 - ldr r0, =0x000186a5 - bx lr - .pool - thumb_func_end sub_81CFB08 - - thumb_func_start sub_81CFB10 -sub_81CFB10: @ 81CFB10 - ldr r0, =0x000186ad - bx lr - .pool - thumb_func_end sub_81CFB10 - - thumb_func_start sub_81CFB18 -sub_81CFB18: @ 81CFB18 - push {lr} - movs r0, 0x9 - bl GetSubstructPtr - ldr r0, [r0, 0x14] - pop {r1} - bx r1 - thumb_func_end sub_81CFB18 - - thumb_func_start sub_81CFB28 -sub_81CFB28: @ 81CFB28 - push {lr} - movs r0, 0x9 - bl GetSubstructPtr - ldr r0, [r0, 0x1C] - adds r0, 0x4 - pop {r1} - bx r1 - thumb_func_end sub_81CFB28 - - thumb_func_start sub_81CFB38 -sub_81CFB38: @ 81CFB38 - push {lr} - movs r0, 0x9 - bl GetSubstructPtr - ldr r0, [r0, 0x1C] - ldrh r0, [r0] - pop {r1} - bx r1 - thumb_func_end sub_81CFB38 - - thumb_func_start sub_81CFB48 -sub_81CFB48: @ 81CFB48 - push {r4,lr} - movs r0, 0x9 - bl GetSubstructPtr - adds r4, r0, 0 - bl GetSelectedMatchCall - ldr r1, [r4, 0x1C] - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1, 0x6] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CFB48 - - thumb_func_start sub_81CFB64 -sub_81CFB64: @ 81CFB64 - push {lr} - movs r0, 0x9 - bl GetSubstructPtr - ldr r0, [r0, 0x1C] - ldrh r0, [r0, 0x2] - pop {r1} - bx r1 - thumb_func_end sub_81CFB64 - - thumb_func_start sub_81CFB74 -sub_81CFB74: @ 81CFB74 - push {lr} - ldr r2, =gUnknown_086235D8 - lsls r1, r0, 2 - adds r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CFB74 - - thumb_func_start sub_81CFB8C -sub_81CFB8C: @ 81CFB8C - push {r4-r6,lr} - sub sp, 0x4 - movs r0, 0x9 - bl GetSubstructPtr - adds r6, r0, 0 - ldr r0, [r6, 0x1C] - movs r1, 0 - strh r1, [r0] - ldr r0, [r6, 0x1C] - strh r1, [r0, 0x2] - ldr r1, =0xffffff00 - ldr r0, [sp] - ands r0, r1 - movs r1, 0xE - orrs r0, r1 - str r0, [sp] - movs r5, 0 -_081CFBB0: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _081CFC10 - adds r0, r4, 0 - movs r1, 0x6 - bl GetMonData - cmp r0, 0 - bne _081CFC0A - adds r0, r4, 0 - movs r1, 0x4 - bl GetMonData - cmp r0, 0 - bne _081CFC0A - adds r0, r4, 0 - movs r1, 0x52 - bl GetMonData - adds r3, r0, 0 - cmp r3, 0 - beq _081CFC0A - lsls r1, r5, 24 - lsrs r1, 16 - ldr r2, =0xffff00ff - ldr r0, [sp] - ands r0, r2 - orrs r0, r1 - lsls r2, r3, 16 - ldr r1, =0x0000ffff - ands r0, r1 - orrs r0, r2 - str r0, [sp] - adds r0, r6, 0 - mov r1, sp - bl sub_81CFCEC -_081CFC0A: - adds r5, 0x1 - cmp r5, 0x5 - ble _081CFBB0 -_081CFC10: - movs r0, 0x1 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CFB8C - - thumb_func_start sub_81CFC2C -sub_81CFC2C: @ 81CFC2C - push {lr} - movs r0, 0x9 - bl GetSubstructPtr - movs r1, 0 - str r1, [r0, 0x10] - str r1, [r0, 0xC] - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_81CFC2C - - thumb_func_start sub_81CFC40 -sub_81CFC40: @ 81CFC40 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r0, 0x9 - bl GetSubstructPtr - mov r8, r0 - ldr r7, [r0, 0xC] - ldr r6, [r0, 0x10] - movs r0, 0 - mov r9, r0 - cmp r7, 0xD - bgt _081CFCD4 - b _081CFCC8 -_081CFC60: - adds r0, r7, 0 - adds r1, r6, 0 - bl CheckBoxMonSanityAt - cmp r0, 0 - beq _081CFCA6 - lsls r0, r7, 24 - lsrs r5, r0, 24 - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x52 - bl GetBoxMonDataAt - adds r3, r0, 0 - cmp r3, 0 - beq _081CFCA6 - ldr r1, =0xffffff00 - ldr r0, [sp] - ands r0, r1 - orrs r0, r5 - lsls r2, r4, 8 - ldr r1, =0xffff00ff - ands r0, r1 - orrs r0, r2 - lsls r2, r3, 16 - ldr r1, =0x0000ffff - ands r0, r1 - orrs r0, r2 - str r0, [sp] - mov r0, r8 - mov r1, sp - bl sub_81CFCEC -_081CFCA6: - movs r1, 0x1 - add r9, r1 - adds r6, 0x1 - mov r0, r9 - cmp r0, 0xE - ble _081CFCC8 - mov r1, r8 - str r7, [r1, 0xC] - str r6, [r1, 0x10] - movs r0, 0x3 - b _081CFCDC - .pool -_081CFCC8: - cmp r6, 0x1D - ble _081CFC60 - movs r6, 0 - adds r7, 0x1 - cmp r7, 0xD - ble _081CFCC8 -_081CFCD4: - movs r0, 0x1 - mov r1, r8 - str r0, [r1, 0x14] - movs r0, 0x4 -_081CFCDC: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81CFC40 - - thumb_func_start sub_81CFCEC -sub_81CFCEC: @ 81CFCEC - push {r4-r7,lr} - adds r5, r0, 0 - adds r7, r1, 0 - movs r1, 0 - ldr r0, [r5, 0x1C] - ldrh r2, [r0] - lsrs r3, r2, 1 - cmp r2, r3 - beq _081CFD1C - adds r6, r0, 0 - ldrh r4, [r7, 0x2] -_081CFD02: - lsls r0, r3, 2 - adds r0, r6, r0 - ldrh r0, [r0, 0x6] - cmp r4, r0 - bls _081CFD10 - adds r2, r3, 0 - b _081CFD12 -_081CFD10: - adds r1, r3, 0x1 -_081CFD12: - subs r0, r2, r1 - lsrs r0, 1 - adds r3, r1, r0 - cmp r2, r3 - bne _081CFD02 -_081CFD1C: - ldr r0, [r5, 0x1C] - ldrh r2, [r0] - lsls r6, r3, 2 - cmp r2, r3 - bls _081CFD40 - lsls r0, r2, 2 - subs r4, r0, 0x4 -_081CFD2A: - ldr r0, [r5, 0x1C] - lsls r1, r2, 2 - adds r0, 0x4 - adds r1, r0, r1 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - subs r4, 0x4 - subs r2, 0x1 - cmp r2, r3 - bhi _081CFD2A -_081CFD40: - ldr r0, [r5, 0x1C] - adds r0, 0x4 - adds r0, r6 - ldr r1, [r7] - str r1, [r0] - ldr r1, [r5, 0x1C] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81CFCEC - - thumb_func_start sub_81CFD58 -sub_81CFD58: @ 81CFD58 - push {r4-r6,lr} - movs r5, 0 -_081CFD5C: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _081CFD8A - adds r0, r4, 0 - movs r1, 0x6 - bl GetMonData - cmp r0, 0 - bne _081CFD8A - adds r0, r4, 0 - movs r1, 0x53 - bl GetMonData - cmp r0, 0 - bne _081CFDB2 -_081CFD8A: - adds r5, 0x1 - cmp r5, 0x5 - ble _081CFD5C - movs r5, 0 -_081CFD92: - movs r4, 0 - lsls r6, r5, 24 -_081CFD96: - adds r0, r5, 0 - adds r1, r4, 0 - bl CheckBoxMonSanityAt - cmp r0, 0 - beq _081CFDBC - lsls r1, r4, 24 - lsrs r1, 24 - lsrs r0, r6, 24 - movs r2, 0x53 - bl GetBoxMonDataAt - cmp r0, 0 - beq _081CFDBC -_081CFDB2: - movs r0, 0x1 - b _081CFDCA - .pool -_081CFDBC: - adds r4, 0x1 - cmp r4, 0x1D - ble _081CFD96 - adds r5, 0x1 - cmp r5, 0xD - ble _081CFD92 - movs r0, 0 -_081CFDCA: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81CFD58 - - thumb_func_start sub_81CFDD0 -sub_81CFDD0: @ 81CFDD0 - push {r4,lr} - movs r1, 0x81 - lsls r1, 4 - movs r0, 0xA - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081CFE00 - ldr r0, =sub_81CFEB8 - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r4, 0x4] - ldr r0, =sub_81CFE84 - str r0, [r4] - movs r0, 0 - str r0, [r4, 0xC] - movs r0, 0x1 - b _081CFE02 - .pool -_081CFE00: - movs r0, 0 -_081CFE02: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CFDD0 - - thumb_func_start sub_81CFE08 -sub_81CFE08: @ 81CFE08 - push {r4,lr} - movs r1, 0x81 - lsls r1, 4 - movs r0, 0xA - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081CFE38 - ldr r0, =sub_81CFEB8 - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r4, 0x4] - ldr r0, =sub_81CFE84 - str r0, [r4] - movs r0, 0x1 - str r0, [r4, 0xC] - b _081CFE3A - .pool -_081CFE38: - movs r0, 0 -_081CFE3A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CFE08 - - thumb_func_start sub_81CFE40 -sub_81CFE40: @ 81CFE40 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xA - bl GetSubstructPtr - adds r5, r0, 0 - ldr r0, =gUnknown_086237B8 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r5, 0x4] - ldr r0, =sub_81CFE84 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CFE40 - - thumb_func_start sub_81CFE70 -sub_81CFE70: @ 81CFE70 - push {lr} - movs r0, 0xA - bl GetSubstructPtr - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - bx r1 - thumb_func_end sub_81CFE70 - - thumb_func_start sub_81CFE84 -sub_81CFE84: @ 81CFE84 - push {lr} - movs r0, 0xA - bl GetSubstructPtr - ldr r0, [r0, 0x4] - bl IsLoopedTaskActive - pop {r1} - bx r1 - thumb_func_end sub_81CFE84 - - thumb_func_start sub_81CFE98 -sub_81CFE98: @ 81CFE98 - push {r4,lr} - movs r0, 0xA - bl GetSubstructPtr - adds r4, r0, 0 - bl sub_81C8234 - ldrb r0, [r4, 0x8] - bl RemoveWindow - movs r0, 0xA - bl FreePokenavSubstruct - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CFE98 - - thumb_func_start sub_81CFEB8 -sub_81CFEB8: @ 81CFEB8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r0, 0xA - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x5 - bls _081CFECC - b _081CFFF2 -_081CFECC: - lsls r0, r4, 2 - ldr r1, =_081CFEDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CFEDC: - .4byte _081CFEF4 - .4byte _081CFF48 - .4byte _081CFF76 - .4byte _081CFF94 - .4byte _081CFFA4 - .4byte _081CFFDE -_081CFEF4: - ldr r0, =gUnknown_086237B0 - movs r1, 0x2 - bl InitBgTemplates - ldr r1, =gUnknown_08623604 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - adds r1, r5, 0 - adds r1, 0x10 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, =gUnknown_086236CC - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - ldr r0, =gUnknown_086235E4 - movs r1, 0x10 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - movs r0, 0x1 - bl CopyBgTilemapBufferToVram -_081CFF32: - movs r0, 0 - b _081CFFF4 - .pool -_081CFF48: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081CFFEE - bl sub_81CFB18 - cmp r0, 0 - beq _081CFFEE - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - bl ShowBg - b _081CFF32 -_081CFF76: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081CFFEE - ldr r0, =gUnknown_08623790 - movs r1, 0x20 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - bl sub_81D0304 - b _081CFF32 - .pool -_081CFF94: - bl sub_81C8224 - cmp r0, 0 - bne _081CFFEE - adds r0, r5, 0 - bl sub_81D024C - b _081CFF32 -_081CFFA4: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081CFFEE - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl HideBg - movs r0, 0x9 - bl sub_81C7BA4 - movs r0, 0x1 - bl sub_81C7AC0 - ldr r0, [r5, 0xC] - cmp r0, 0 - bne _081CFF32 - movs r0, 0x2 - bl LoadLeftHeaderGfxForIndex - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0 - bl sub_81C7FA0 - b _081CFF32 -_081CFFDE: - bl IsPaletteFadeActive - cmp r0, 0 - bne _081CFFEE - bl sub_81C8010 - cmp r0, 0 - beq _081CFFF2 -_081CFFEE: - movs r0, 0x2 - b _081CFFF4 -_081CFFF2: - movs r0, 0x4 -_081CFFF4: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CFEB8 - - thumb_func_start sub_81CFFFC -sub_81CFFFC: @ 81CFFFC - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xA - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081D004A - cmp r4, 0x1 - bgt _081D0016 - cmp r4, 0 - beq _081D0020 - b _081D006A -_081D0016: - cmp r4, 0x2 - beq _081D0052 - cmp r4, 0x3 - beq _081D005C - b _081D006A -_081D0020: - bl MatchCall_MoveCursorUp - cmp r0, 0x1 - beq _081D0038 - cmp r0, 0x1 - bgt _081D0032 - cmp r0, 0 - beq _081D006A - b _081D0058 -_081D0032: - cmp r0, 0x2 - beq _081D0042 - b _081D0058 -_081D0038: - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - b _081D006C -_081D0042: - movs r0, 0x5 - bl PlaySE - b _081D0058 -_081D004A: - bl sub_81C8630 - cmp r0, 0 - bne _081D0066 -_081D0052: - adds r0, r5, 0 - bl sub_81D0288 -_081D0058: - movs r0, 0 - b _081D006C -_081D005C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081D006A -_081D0066: - movs r0, 0x2 - b _081D006C -_081D006A: - movs r0, 0x4 -_081D006C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CFFFC - - thumb_func_start sub_81D0074 -sub_81D0074: @ 81D0074 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xA - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081D00C2 - cmp r4, 0x1 - bgt _081D008E - cmp r4, 0 - beq _081D0098 - b _081D00E2 -_081D008E: - cmp r4, 0x2 - beq _081D00CA - cmp r4, 0x3 - beq _081D00D4 - b _081D00E2 -_081D0098: - bl MatchCall_MoveCursorDown - cmp r0, 0x1 - beq _081D00B0 - cmp r0, 0x1 - bgt _081D00AA - cmp r0, 0 - beq _081D00E2 - b _081D00D0 -_081D00AA: - cmp r0, 0x2 - beq _081D00BA - b _081D00D0 -_081D00B0: - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - b _081D00E4 -_081D00BA: - movs r0, 0x5 - bl PlaySE - b _081D00D0 -_081D00C2: - bl sub_81C8630 - cmp r0, 0 - bne _081D00DE -_081D00CA: - adds r0, r5, 0 - bl sub_81D0288 -_081D00D0: - movs r0, 0 - b _081D00E4 -_081D00D4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081D00E2 -_081D00DE: - movs r0, 0x2 - b _081D00E4 -_081D00E2: - movs r0, 0x4 -_081D00E4: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D0074 - - thumb_func_start sub_81D00EC -sub_81D00EC: @ 81D00EC - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xA - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081D013A - cmp r4, 0x1 - bgt _081D0106 - cmp r4, 0 - beq _081D0110 - b _081D015A -_081D0106: - cmp r4, 0x2 - beq _081D0142 - cmp r4, 0x3 - beq _081D014C - b _081D015A -_081D0110: - bl MatchCall_PageUp - cmp r0, 0x1 - beq _081D0128 - cmp r0, 0x1 - bgt _081D0122 - cmp r0, 0 - beq _081D015A - b _081D0148 -_081D0122: - cmp r0, 0x2 - beq _081D0132 - b _081D0148 -_081D0128: - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - b _081D015C -_081D0132: - movs r0, 0x5 - bl PlaySE - b _081D0148 -_081D013A: - bl sub_81C8630 - cmp r0, 0 - bne _081D0156 -_081D0142: - adds r0, r5, 0 - bl sub_81D0288 -_081D0148: - movs r0, 0 - b _081D015C -_081D014C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081D015A -_081D0156: - movs r0, 0x2 - b _081D015C -_081D015A: - movs r0, 0x4 -_081D015C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D00EC - - thumb_func_start sub_81D0164 -sub_81D0164: @ 81D0164 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xA - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081D01B2 - cmp r4, 0x1 - bgt _081D017E - cmp r4, 0 - beq _081D0188 - b _081D01D2 -_081D017E: - cmp r4, 0x2 - beq _081D01BA - cmp r4, 0x3 - beq _081D01C4 - b _081D01D2 -_081D0188: - bl MatchCall_PageDown - cmp r0, 0x1 - beq _081D01A0 - cmp r0, 0x1 - bgt _081D019A - cmp r0, 0 - beq _081D01D2 - b _081D01C0 -_081D019A: - cmp r0, 0x2 - beq _081D01AA - b _081D01C0 -_081D01A0: - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - b _081D01D4 -_081D01AA: - movs r0, 0x5 - bl PlaySE - b _081D01C0 -_081D01B2: - bl sub_81C8630 - cmp r0, 0 - bne _081D01CE -_081D01BA: - adds r0, r5, 0 - bl sub_81D0288 -_081D01C0: - movs r0, 0 - b _081D01D4 -_081D01C4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081D01D2 -_081D01CE: - movs r0, 0x2 - b _081D01D4 -_081D01D2: - movs r0, 0x4 -_081D01D4: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D0164 - - thumb_func_start sub_81D01DC -sub_81D01DC: @ 81D01DC - push {lr} - cmp r0, 0 - beq _081D01E8 - cmp r0, 0x1 - beq _081D01FC - b _081D0214 -_081D01E8: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_81C7AC0 - bl sub_81C78A0 - movs r0, 0 - b _081D0216 -_081D01FC: - bl IsPaletteFadeActive - cmp r0, 0 - bne _081D020C - bl MainMenuLoopedTaskIsBusy - cmp r0, 0 - beq _081D0210 -_081D020C: - movs r0, 0x2 - b _081D0216 -_081D0210: - bl sub_81C7FDC -_081D0214: - movs r0, 0x4 -_081D0216: - pop {r1} - bx r1 - thumb_func_end sub_81D01DC - - thumb_func_start sub_81D021C -sub_81D021C: @ 81D021C - push {lr} - cmp r0, 0 - beq _081D0228 - cmp r0, 0x1 - beq _081D0238 - b _081D0244 -_081D0228: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_81C7AC0 - movs r0, 0 - b _081D0246 -_081D0238: - bl IsPaletteFadeActive - cmp r0, 0 - beq _081D0244 - movs r0, 0x2 - b _081D0246 -_081D0244: - movs r0, 0x4 -_081D0246: - pop {r1} - bx r1 - thumb_func_end sub_81D021C - - thumb_func_start sub_81D024C -sub_81D024C: @ 81D024C - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_086237D4 - bl AddWindow - strh r0, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - bl sub_81CFB38 - adds r2, r0, 0 - ldrh r0, [r4, 0x8] - movs r1, 0 - bl sub_81D02B0 - ldrb r0, [r4, 0x8] - movs r1, 0x1 - bl CopyWindowToVram - adds r0, r4, 0 - bl sub_81D0288 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D024C - - thumb_func_start sub_81D0288 -sub_81D0288: @ 81D0288 - push {r4,r5,lr} - adds r5, r0, 0 - bl GetSelectedMatchCall - adds r4, r0, 0 - bl sub_81CFB38 - adds r2, r0, 0 - ldrh r0, [r5, 0x8] - adds r4, 0x1 - adds r1, r4, 0 - bl sub_81D02B0 - ldrb r0, [r5, 0x8] - movs r1, 0x2 - bl CopyWindowToVram - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81D0288 - - thumb_func_start sub_81D02B0 -sub_81D02B0: @ 81D02B0 - push {r4,r5,lr} - sub sp, 0x1C - adds r4, r0, 0 - adds r5, r2, 0 - add r0, sp, 0xC - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r1, 0xBA - strb r1, [r0] - adds r0, 0x1 - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r0, 0x1 - add r1, sp, 0xC - movs r2, 0x38 - bl GetStringCenterAlignXOffset - adds r3, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0x1 - add r2, sp, 0xC - bl AddTextPrinterParameterized - add sp, 0x1C - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81D02B0 - - thumb_func_start sub_81D0304 -sub_81D0304: @ 81D0304 - push {r4,lr} - sub sp, 0x18 - bl sub_81CFB28 - str r0, [sp] - bl sub_81CFB38 - mov r1, sp - movs r4, 0 - strh r0, [r1, 0x4] - movs r0, 0x4 - strb r0, [r1, 0x8] - bl sub_81CFB64 - mov r1, sp - strh r0, [r1, 0x6] - movs r0, 0xD - strb r0, [r1, 0x9] - movs r0, 0x11 - strb r0, [r1, 0xA] - mov r0, sp - movs r2, 0x1 - strb r2, [r0, 0xB] - movs r0, 0x8 - strb r0, [r1, 0xC] - movs r0, 0x2 - strb r0, [r1, 0xD] - mov r0, sp - strb r2, [r0, 0xE] - ldr r0, =sub_81D035C - str r0, [sp, 0x10] - str r4, [sp, 0x14] - ldr r0, =gUnknown_086237B4 - movs r2, 0 - bl sub_81C81D4 - add sp, 0x18 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D0304 - - thumb_func_start sub_81D035C -sub_81D035C: @ 81D035C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r1, 0 - adds r7, r0, 0 - ldrb r0, [r7] - cmp r0, 0xE - bne _081D03A4 - ldrb r1, [r7, 0x1] - movs r0, 0x64 - adds r4, r1, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - bl GetMonGender - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - bl GetLevelFromMonExp - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r2, =gStringVar3 - adds r0, r4, 0 - movs r1, 0x2 - bl GetMonData - b _081D03CC - .pool -_081D03A4: - ldrb r0, [r7] - ldrb r1, [r7, 0x1] - bl GetBoxedMonPtr - adds r4, r0, 0 - bl GetBoxMonGender - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - bl GetLevelFromBoxMonExp - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r2, =gStringVar3 - adds r0, r4, 0 - movs r1, 0x2 - bl GetBoxMonData -_081D03CC: - ldr r4, =gStringVar3 - adds r0, r4, 0 - bl StringGetEnd10 - adds r0, r6, 0 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x3C - bl sub_81DB494 - adds r6, r0, 0 - cmp r5, 0 - beq _081D03F8 - cmp r5, 0xFE - beq _081D0400 - ldr r1, =gUnknown_086237F4 - b _081D0402 - .pool -_081D03F8: - ldr r1, =gUnknown_086237DC - b _081D0402 - .pool -_081D0400: - ldr r1, =gUnknown_086237E8 -_081D0402: - ldr r4, =gStringVar1 - adds r0, r4, 0 - bl StringCopy - movs r1, 0xBA - strb r1, [r0] - adds r0, 0x1 - movs r1, 0xF9 - strb r1, [r0] - adds r0, 0x1 - movs r1, 0x5 - strb r1, [r0] - adds r0, 0x1 - mov r1, r8 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r0, r6, 0 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x36 - bl sub_81DB494 - adds r6, r0, 0 - ldrh r1, [r7, 0x2] - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D035C - - .align 2, 0 @ Don't pad with nop. diff --git a/data/event_scripts.s b/data/event_scripts.s index a050697095..191fe5d606 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1118,7 +1118,7 @@ EverGrandeCity_HallOfFame_EventScript_2717C1:: @ 82717C1 call_if_unset FLAG_RECEIVED_BELDUM, EverGrandeCity_HallOfFame_EventScript_27183F setflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_BEDROOM setflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_BEDROOM - compare VAR_0x40D3, 0 + compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 0 call_if_eq EverGrandeCity_HallOfFame_EventScript_271851 return @@ -1145,7 +1145,7 @@ EverGrandeCity_HallOfFame_EventScript_271843:: @ 8271843 return EverGrandeCity_HallOfFame_EventScript_271851:: @ 8271851 - setvar VAR_0x40D3, 1 + setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 1 return EventScript_WhiteOut:: @ 8271857 diff --git a/data/maps/CaveOfOrigin_B1F/scripts.inc b/data/maps/CaveOfOrigin_B1F/scripts.inc index 0e554a9452..5148d29423 100644 --- a/data/maps/CaveOfOrigin_B1F/scripts.inc +++ b/data/maps/CaveOfOrigin_B1F/scripts.inc @@ -52,7 +52,7 @@ CaveOfOrigin_B1F_EventScript_23584D:: @ 823584D playse SE_KAIDAN fadescreenspeed 1, 4 setflag FLAG_WALLACE_GOES_TO_SKY_PILLAR - setvar VAR_RAYQUAZA_STATE, 3 + setvar VAR_SOOTOPOLIS_CITY_STATE, 3 removeobject 1 clearflag FLAG_HIDE_SKY_PILLAR_WALLACE fadescreen 0 diff --git a/data/maps/DewfordTown/scripts.inc b/data/maps/DewfordTown/scripts.inc index 1fcaab8d6a..f564111040 100644 --- a/data/maps/DewfordTown/scripts.inc +++ b/data/maps/DewfordTown/scripts.inc @@ -138,7 +138,7 @@ DewfordTown_EventScript_1E9660:: @ 81E9660 clearflag FLAG_HIDE_ROUTE_104_MR_BRINEY_BOAT setflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD_TOWN hideobjectat 4, MAP_DEWFORD_TOWN - setvar VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE, 2 + setvar VAR_BOARD_BRINEY_BOAT_STATE, 2 resetobjectpriority EVENT_OBJ_ID_PLAYER, MAP_DEWFORD_TOWN warp MAP_ROUTE104_MR_BRINEYS_HOUSE, 255, 5, 4 copyvar VAR_BRINEY_LOCATION, VAR_0x8008 diff --git a/data/maps/LavaridgeTown/scripts.inc b/data/maps/LavaridgeTown/scripts.inc index 9e20673b7d..de1a2bcee6 100644 --- a/data/maps/LavaridgeTown/scripts.inc +++ b/data/maps/LavaridgeTown/scripts.inc @@ -9,9 +9,9 @@ LavaridgeTown_OnTransition: @ 81EA4DE call_if_set FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY, LavaridgeTown_EventScript_1EA53F call Common_EventScript_SetupRivalGender call Common_EventScript_SetupRivalOnBikeGender - compare VAR_LAVARIDGE_RIVAL_STATE, 1 + compare VAR_LAVARIDGE_TOWN_STATE, 1 call_if_eq LavaridgeTown_EventScript_1EA518 - compare VAR_LAVARIDGE_RIVAL_STATE, 1 + compare VAR_LAVARIDGE_TOWN_STATE, 1 call_if_eq LavaridgeTown_EventScript_1EA543 end @@ -41,7 +41,7 @@ LavaridgeTown_EventScript_1EA543:: @ 81EA543 return LavaridgeTown_MapScript2_1EA547: @ 81EA547 - map_script_2 VAR_LAVARIDGE_RIVAL_STATE, 1, LavaridgeTown_EventScript_1EA551 + map_script_2 VAR_LAVARIDGE_TOWN_STATE, 1, LavaridgeTown_EventScript_1EA551 .2byte 0 LavaridgeTown_EventScript_1EA551:: @ 81EA551 @@ -94,7 +94,7 @@ LavaridgeTown_EventScript_1EA5FF:: @ 81EA5FF compare VAR_0x8008, 9 call_if_ne LavaridgeTown_EventScript_1EA6C9 removeobject 7 - setvar VAR_LAVARIDGE_RIVAL_STATE, 2 + setvar VAR_LAVARIDGE_TOWN_STATE, 2 clearflag FLAG_HIDE_MAP_NAME_POPUP savebgm MUS_DUMMY fadedefaultbgm diff --git a/data/maps/LavaridgeTown_Gym_1F/scripts.inc b/data/maps/LavaridgeTown_Gym_1F/scripts.inc index bdc1da32fd..8eec8cf43b 100644 --- a/data/maps/LavaridgeTown_Gym_1F/scripts.inc +++ b/data/maps/LavaridgeTown_Gym_1F/scripts.inc @@ -82,7 +82,7 @@ LavaridgeTown_Gym_1F_EventScript_1FE7C1:: @ 81FE7C1 setvar VAR_0x8008, 4 call LavaridgeTown_Gym_1F_EventScript_271F43 setflag FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WALLY - setvar VAR_LAVARIDGE_RIVAL_STATE, 1 + setvar VAR_LAVARIDGE_TOWN_STATE, 1 call LavaridgeTown_Gym_1F_EventScript_1FE841 closemessage delay 30 diff --git a/data/maps/LilycoveCity_DepartmentStore_5F/scripts.inc b/data/maps/LilycoveCity_DepartmentStore_5F/scripts.inc index 8dd40f4b3d..6b57966046 100644 --- a/data/maps/LilycoveCity_DepartmentStore_5F/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStore_5F/scripts.inc @@ -3,9 +3,9 @@ LilycoveCity_DepartmentStore_5F_MapScripts:: @ 821FF7A .byte 0 LilycoveCity_DepartmentStore_5F_MapScript2_21FF80: @ 821FF80 - map_script_2 VAR_RAYQUAZA_STATE, 1, LilycoveCity_DepartmentStore_5F_EventScript_21FF9A - map_script_2 VAR_RAYQUAZA_STATE, 2, LilycoveCity_DepartmentStore_5F_EventScript_21FF9A - map_script_2 VAR_RAYQUAZA_STATE, 3, LilycoveCity_DepartmentStore_5F_EventScript_21FF9A + map_script_2 VAR_SOOTOPOLIS_CITY_STATE, 1, LilycoveCity_DepartmentStore_5F_EventScript_21FF9A + map_script_2 VAR_SOOTOPOLIS_CITY_STATE, 2, LilycoveCity_DepartmentStore_5F_EventScript_21FF9A + map_script_2 VAR_SOOTOPOLIS_CITY_STATE, 3, LilycoveCity_DepartmentStore_5F_EventScript_21FF9A .2byte 0 LilycoveCity_DepartmentStore_5F_EventScript_21FF9A:: @ 821FF9A @@ -125,9 +125,9 @@ LilycoveCity_DepartmentStore_5F_EventScript_220075:: @ 8220075 lockall applymovement 7, Common_Movement_FacePlayer waitmovement 0 - compare VAR_RAYQUAZA_STATE, 0 + compare VAR_SOOTOPOLIS_CITY_STATE, 0 goto_if_eq LilycoveCity_DepartmentStore_5F_EventScript_22009C - compare VAR_RAYQUAZA_STATE, 4 + compare VAR_SOOTOPOLIS_CITY_STATE, 4 goto_if_ge LilycoveCity_DepartmentStore_5F_EventScript_22009C goto LilycoveCity_DepartmentStore_5F_EventScript_2200A7 end diff --git a/data/maps/LittlerootTown/map.json b/data/maps/LittlerootTown/map.json index 7ef696a58d..eaa17a5df8 100644 --- a/data/maps/LittlerootTown/map.json +++ b/data/maps/LittlerootTown/map.json @@ -154,7 +154,7 @@ "x": 10, "y": 1, "elevation": 3, - "var": "VAR_0x4050", + "var": "VAR_LITTLEROOT_TOWN_STATE", "var_value": "0", "script": "LittlerootTown_EventScript_1E8091" }, @@ -163,7 +163,7 @@ "x": 11, "y": 1, "elevation": 3, - "var": "VAR_0x4050", + "var": "VAR_LITTLEROOT_TOWN_STATE", "var_value": "0", "script": "LittlerootTown_EventScript_1E80EF" }, @@ -172,7 +172,7 @@ "x": 11, "y": 1, "elevation": 3, - "var": "VAR_0x4050", + "var": "VAR_LITTLEROOT_TOWN_STATE", "var_value": "1", "script": "LittlerootTown_EventScript_1E811F" }, @@ -181,7 +181,7 @@ "x": 8, "y": 9, "elevation": 3, - "var": "VAR_0x4050", + "var": "VAR_LITTLEROOT_TOWN_STATE", "var_value": "3", "script": "LittlerootTown_EventScript_1E81F9" }, @@ -190,7 +190,7 @@ "x": 9, "y": 9, "elevation": 3, - "var": "VAR_0x4050", + "var": "VAR_LITTLEROOT_TOWN_STATE", "var_value": "3", "script": "LittlerootTown_EventScript_1E8205" }, @@ -199,7 +199,7 @@ "x": 10, "y": 9, "elevation": 3, - "var": "VAR_0x4050", + "var": "VAR_LITTLEROOT_TOWN_STATE", "var_value": "3", "script": "LittlerootTown_EventScript_1E81E1" }, @@ -208,7 +208,7 @@ "x": 11, "y": 9, "elevation": 3, - "var": "VAR_0x4050", + "var": "VAR_LITTLEROOT_TOWN_STATE", "var_value": "3", "script": "LittlerootTown_EventScript_1E81ED" }, @@ -217,7 +217,7 @@ "x": 10, "y": 2, "elevation": 3, - "var": "VAR_0x4050", + "var": "VAR_LITTLEROOT_TOWN_STATE", "var_value": "3", "script": "LittlerootTown_EventScript_1E81BB" }, @@ -226,7 +226,7 @@ "x": 11, "y": 2, "elevation": 3, - "var": "VAR_0x4050", + "var": "VAR_LITTLEROOT_TOWN_STATE", "var_value": "3", "script": "LittlerootTown_EventScript_1E81CE" } @@ -265,4 +265,4 @@ "script": "LittlerootTown_EventScript_1E818F" } ] -} \ No newline at end of file +} diff --git a/data/maps/LittlerootTown/scripts.inc b/data/maps/LittlerootTown/scripts.inc index f347811f8f..8f10f2b4d0 100644 --- a/data/maps/LittlerootTown/scripts.inc +++ b/data/maps/LittlerootTown/scripts.inc @@ -10,24 +10,24 @@ LittlerootTown_MapScript1_1E7DDB: @ 81E7DDB compare VAR_LITTLEROOT_INTRO_STATE, 2 call_if_eq LittlerootTown_EventScript_1E7E67 call_if_unset FLAG_RESCUED_BIRCH, LittlerootTown_EventScript_1E7E6F - compare VAR_0x4050, 3 + compare VAR_LITTLEROOT_TOWN_STATE, 3 call_if_eq LittlerootTown_EventScript_1E7E92 compare VAR_LITTLEROOT_HOUSES_STATE, 4 call_if_eq LittlerootTown_EventScript_1E7E5C compare VAR_LITTLEROOT_HOUSES_STATE_2, 4 call_if_eq LittlerootTown_EventScript_1E7E5C - compare VAR_OLDALE_STATE, 1 + compare VAR_OLDALE_RIVAL_STATE, 1 call_if_eq LittlerootTown_EventScript_1E7E53 compare VAR_LITTLEROOT_RIVAL_STATE, 3 call_if_eq LittlerootTown_EventScript_1E7E4F - compare VAR_0x40D3, 1 + compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 1 call_if_eq LittlerootTown_EventScript_1E7E4B - compare VAR_0x40D3, 2 + compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2 call_if_eq LittlerootTown_EventScript_1E7E45 end LittlerootTown_EventScript_1E7E45:: @ 81E7E45 - setvar VAR_0x40D3, 3 + setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 3 return LittlerootTown_EventScript_1E7E4B:: @ 81E7E4B @@ -39,7 +39,7 @@ LittlerootTown_EventScript_1E7E4F:: @ 81E7E4F return LittlerootTown_EventScript_1E7E53:: @ 81E7E53 - setvar VAR_OLDALE_STATE, 2 + setvar VAR_OLDALE_RIVAL_STATE, 2 setflag FLAG_HIDE_OLDALE_TOWN_RIVAL return @@ -53,7 +53,7 @@ LittlerootTown_EventScript_1E7E67:: @ 81E7E67 return LittlerootTown_EventScript_1E7E6F:: @ 81E7E6F - compare VAR_0x4050, 0 + compare VAR_LITTLEROOT_TOWN_STATE, 0 goto_if_eq LittlerootTown_EventScript_1E7E86 setobjectxyperm 1, 10, 1 setobjectmovementtype 1, MOVEMENT_TYPE_FACE_UP @@ -85,7 +85,7 @@ LittlerootTown_EventScript_1E7EB9:: @ 81E7EB9 LittlerootTown_MapScript2_1E7EC1: @ 81E7EC1 map_script_2 VAR_LITTLEROOT_INTRO_STATE, 1, LittlerootTown_EventScript_1E7EDB map_script_2 VAR_LITTLEROOT_INTRO_STATE, 2, LittlerootTown_EventScript_1E7EF9 - map_script_2 VAR_0x40D3, 1, LittlerootTown_EventScript_1E7FB1 + map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 1, LittlerootTown_EventScript_1E7FB1 .2byte 0 LittlerootTown_EventScript_1E7EDB:: @ 81E7EDB @@ -201,7 +201,7 @@ LittlerootTown_EventScript_1E7FB1:: @ 81E7FB1 end LittlerootTown_MapScript2_1E7FE2: @ 81E7FE2 - map_script_2 VAR_0x40D3, 1, LittlerootTown_EventScript_1E7FEC + map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 1, LittlerootTown_EventScript_1E7FEC .2byte 0 LittlerootTown_EventScript_1E7FEC:: @ 81E7FEC @@ -236,7 +236,7 @@ LittlerootTown_EventScript_1E8034:: @ 81E8034 faceplayer goto_if_set FLAG_ADVENTURE_STARTED, LittlerootTown_EventScript_1E8087 goto_if_set FLAG_RESCUED_BIRCH, LittlerootTown_EventScript_1E807A - compare VAR_0x4050, 0 + compare VAR_LITTLEROOT_TOWN_STATE, 0 goto_if_ne LittlerootTown_EventScript_1E805D msgbox LittlerootTown_Text_1E8BB8, MSGBOX_DEFAULT release @@ -248,7 +248,7 @@ LittlerootTown_EventScript_1E805D:: @ 81E805D closemessage applymovement 1, Common_Movement_FaceOriginalDirection waitmovement 0 - setvar VAR_0x4050, 2 + setvar VAR_LITTLEROOT_TOWN_STATE, 2 release end @@ -366,7 +366,7 @@ LittlerootTown_EventScript_1E811F:: @ 81E811F closemessage applymovement 1, Common_Movement_FaceOriginalDirection waitmovement 0 - setvar VAR_0x4050, 2 + setvar VAR_LITTLEROOT_TOWN_STATE, 2 releaseall end @@ -909,7 +909,7 @@ LittlerootTown_EventScript_1E863D:: @ 81E863D LittlerootTown_EventScript_1E8686:: @ 81E8686 removeobject 4 setflag FLAG_SYS_B_DASH - setvar VAR_0x4050, 4 + setvar VAR_LITTLEROOT_TOWN_STATE, 4 release end diff --git a/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc b/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc index d81340c6c2..17cca3ea9d 100644 --- a/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc +++ b/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc @@ -174,7 +174,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_1F78E2:: @ 81F78E2 clearflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_BEDROOM delay 30 setvar VAR_LITTLEROOT_RIVAL_STATE, 3 - setvar VAR_0x4050, 1 + setvar VAR_LITTLEROOT_TOWN_STATE, 1 savebgm MUS_DUMMY fadedefaultbgm releaseall diff --git a/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc b/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc index a49c51499f..3bb088ccf7 100644 --- a/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc +++ b/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc @@ -24,7 +24,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_1F8433:: @ 81F8433 checkplayergender compare VAR_RESULT, 0 goto_if_eq LittlerootTown_BrendansHouse_2F_EventScript_1F8456 - compare VAR_0x40D3, 2 + compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2 goto_if_ge LittlerootTown_BrendansHouse_2F_EventScript_1F9309 setobjectxyperm 1, 0, 2 setobjectmovementtype 1, MOVEMENT_TYPE_FACE_UP @@ -84,7 +84,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_1F8497:: @ 81F8497 setvar VAR_LITTLEROOT_RIVAL_STATE, 3 setflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F_POKE_BALL clearflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_BEDROOM - setvar VAR_0x4050, 1 + setvar VAR_LITTLEROOT_TOWN_STATE, 1 savebgm MUS_DUMMY fadedefaultbgm releaseall diff --git a/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc b/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc index 0557330a86..d983c9e647 100644 --- a/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc +++ b/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc @@ -211,7 +211,7 @@ LittlerootTown_MaysHouse_1F_EventScript_1F8A8B:: @ 81F8A8B clearflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_BEDROOM delay 30 setvar VAR_LITTLEROOT_RIVAL_STATE, 3 - setvar VAR_0x4050, 1 + setvar VAR_LITTLEROOT_TOWN_STATE, 1 savebgm MUS_DUMMY fadedefaultbgm releaseall diff --git a/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc b/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc index 76bf7d6a8b..dde6df71d2 100644 --- a/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc +++ b/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc @@ -24,7 +24,7 @@ LittlerootTown_MaysHouse_2F_EventScript_1F92E6:: @ 81F92E6 checkplayergender compare VAR_RESULT, 1 goto_if_eq LittlerootTown_MaysHouse_2F_EventScript_1F9309 - compare VAR_0x40D3, 2 + compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2 goto_if_ge LittlerootTown_MaysHouse_2F_EventScript_1F9309 setobjectxyperm 1, 8, 2 setobjectmovementtype 1, MOVEMENT_TYPE_FACE_UP @@ -85,7 +85,7 @@ LittlerootTown_MaysHouse_2F_EventScript_1F934A:: @ 81F934A setvar VAR_LITTLEROOT_RIVAL_STATE, 3 setflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_2F_POKE_BALL clearflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_BEDROOM - setvar VAR_0x4050, 1 + setvar VAR_LITTLEROOT_TOWN_STATE, 1 savebgm MUS_DUMMY fadedefaultbgm releaseall diff --git a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc index 2b0dde7ae0..c4f7045204 100644 --- a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc +++ b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc @@ -7,11 +7,11 @@ LittlerootTown_ProfessorBirchsLab_MapScripts:: @ 81F9C91 LittlerootTown_ProfessorBirchsLab_MapScript1_1F9CA1: @ 81F9CA1 call Common_EventScript_SetupRivalGender call LittlerootTown_ProfessorBirchsLab_EventScript_2720AD - compare VAR_0x40D3, 6 + compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_1F9CF7 - compare VAR_0x40D3, 4 + compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 4 goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_1F9CF3 - compare VAR_0x40D3, 3 + compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 3 goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_1F9CCD end @@ -24,7 +24,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1F9CCD:: @ 81F9CCD end LittlerootTown_ProfessorBirchsLab_EventScript_1F9CE9:: @ 81F9CE9 - setvar VAR_0x40D3, 4 + setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 4 goto LittlerootTown_ProfessorBirchsLab_EventScript_1F9CF3 LittlerootTown_ProfessorBirchsLab_EventScript_1F9CF3:: @ 81F9CF3 @@ -39,12 +39,12 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1F9CF7:: @ 81F9CF7 LittlerootTown_ProfessorBirchsLab_MapScript2_1F9D06: @ 81F9D06 map_script_2 VAR_BIRCH_LAB_STATE, 2, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D40 - map_script_2 VAR_0x40D3, 1, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D45 - map_script_2 VAR_0x40D3, 2, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D45 - map_script_2 VAR_0x40D3, 3, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D71 - map_script_2 VAR_0x40D3, 6, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D71 - map_script_2 VAR_0x40D3, 4, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D75 - map_script_2 VAR_0x40D3, 5, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D75 + map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 1, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D45 + map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D45 + map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 3, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D71 + map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D71 + map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 4, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D75 + map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 5, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D75 .2byte 0 LittlerootTown_ProfessorBirchsLab_EventScript_1F9D40:: @ 81F9D40 @@ -87,8 +87,8 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1F9D75:: @ 81F9D75 LittlerootTown_ProfessorBirchsLab_MapScript2_1F9DB9: @ 81F9DB9 map_script_2 VAR_BIRCH_LAB_STATE, 2, LittlerootTown_ProfessorBirchsLab_EventScript_1F9DDB map_script_2 VAR_BIRCH_LAB_STATE, 4, LittlerootTown_ProfessorBirchsLab_EventScript_1F9E67 - map_script_2 VAR_0x40D3, 1, LittlerootTown_ProfessorBirchsLab_EventScript_1F9E80 - map_script_2 VAR_0x40D3, 4, LittlerootTown_ProfessorBirchsLab_EventScript_1F9F62 + map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 1, LittlerootTown_ProfessorBirchsLab_EventScript_1F9E80 + map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 4, LittlerootTown_ProfessorBirchsLab_EventScript_1F9F62 .2byte 0 LittlerootTown_ProfessorBirchsLab_EventScript_1F9DDB:: @ 81F9DDB @@ -194,7 +194,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1F9E80:: @ 81F9E80 closemessage setflag FLAG_HIDE_LITTLEROOT_TOWN_BIRCH setflag FLAG_HIDE_LITTLEROOT_TOWN_RIVAL - setvar VAR_0x40D3, 2 + setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2 setvar VAR_SCOTT_CALL_STEP_COUNTER, 0 setflag FLAG_SCOTT_CALL_NATIONAL_DEX releaseall @@ -247,7 +247,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1F9F62:: @ 81F9F62 applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_ProfessorBirchsLab_Movement_1F9F7C waitmovement 0 msgbox LittlerootTown_ProfessorBirchsLab_Text_1FB5F9, MSGBOX_DEFAULT - setvar VAR_0x40D3, 5 + setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 5 releaseall end @@ -284,7 +284,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1F9FB1:: @ 81F9FB1 LittlerootTown_ProfessorBirchsLab_EventScript_1F9FBB:: @ 81F9FBB release - compare VAR_0x40D3, 6 + compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_1FA057 applymovement 2, Common_Movement_WalkInPlaceRight waitmovement 0 @@ -297,7 +297,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1F9FBB:: @ 81F9FBB LittlerootTown_ProfessorBirchsLab_EventScript_1F9FEF:: @ 81F9FEF release - compare VAR_0x40D3, 6 + compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_1FA057 applymovement 2, Common_Movement_WalkInPlaceRight waitmovement 0 @@ -310,7 +310,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1F9FEF:: @ 81F9FEF LittlerootTown_ProfessorBirchsLab_EventScript_1FA023:: @ 81FA023 release - compare VAR_0x40D3, 6 + compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_1FA057 applymovement 2, Common_Movement_WalkInPlaceRight waitmovement 0 @@ -373,7 +373,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1FA0F2:: @ 81FA0F2 LittlerootTown_ProfessorBirchsLab_EventScript_1FA0FD:: @ 81FA0FD erasemonpic msgbox LittlerootTown_ProfessorBirchsLab_Text_1FBA2C, MSGBOX_DEFAULT - setvar VAR_0x40D3, 6 + setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 releaseall end @@ -418,7 +418,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1FA193:: @ 81FA193 LittlerootTown_ProfessorBirchsLab_EventScript_1FA19E:: @ 81FA19E erasemonpic msgbox LittlerootTown_ProfessorBirchsLab_Text_1FBA2C, MSGBOX_DEFAULT - setvar VAR_0x40D3, 6 + setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 releaseall end @@ -463,7 +463,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1FA234:: @ 81FA234 LittlerootTown_ProfessorBirchsLab_EventScript_1FA23F:: @ 81FA23F erasemonpic msgbox LittlerootTown_ProfessorBirchsLab_Text_1FBA2C, MSGBOX_DEFAULT - setvar VAR_0x40D3, 6 + setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 releaseall end @@ -477,9 +477,9 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1FA24F:: @ 81FA24F LittlerootTown_ProfessorBirchsLab_EventScript_1FA25A:: @ 81FA25A lock faceplayer - compare VAR_0x40D3, 5 + compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 5 goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_1FA28A - compare VAR_0x40D3, 2 + compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2 goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_1FA294 goto_if_unset FLAG_HAS_MATCH_CALL, LittlerootTown_ProfessorBirchsLab_EventScript_1FA29E goto_if_unset FLAG_ENABLE_PROF_BIRCH_MATCH_CALL, LittlerootTown_ProfessorBirchsLab_EventScript_1FA2D2 @@ -498,9 +498,9 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1FA294:: @ 81FA294 LittlerootTown_ProfessorBirchsLab_EventScript_1FA29E:: @ 81FA29E goto_if_unset FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_UNKNOWN_0x380, LittlerootTown_ProfessorBirchsLab_EventScript_272141 - compare VAR_0x40D3, 3 + compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 3 goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_272141 - compare VAR_0x40D3, 6 + compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_272141 compare VAR_BIRCH_LAB_STATE, 5 goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_1FA3C4 @@ -519,7 +519,7 @@ Route101_EventScript_1FA2D2:: @ 81FA2D2 closemessage delay 30 setflag FLAG_ENABLE_PROF_BIRCH_MATCH_CALL - setvar VAR_0x40DA, 2 + setvar VAR_REGISTER_BIRCH_STATE, 2 release end @@ -539,9 +539,9 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1FA2F8:: @ 81FA2F8 call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_1FA37F setvar VAR_BIRCH_LAB_STATE, 5 setflag FLAG_ADVENTURE_STARTED - setvar VAR_ROUTE102_ACCESSIBLE, 1 + setvar VAR_OLDALE_TOWN_STATE, 1 setvar VAR_LITTLEROOT_RIVAL_STATE, 4 - setvar VAR_0x4050, 3 + setvar VAR_LITTLEROOT_TOWN_STATE, 3 releaseall end @@ -598,11 +598,11 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1FA3E3:: @ 81FA3E3 LittlerootTown_ProfessorBirchsLab_EventScript_1FA3EC:: @ 81FA3EC lock faceplayer - compare VAR_0x40D3, 5 + compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 5 goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_1FA43A - compare VAR_0x40D3, 6 + compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_1FA465 - compare VAR_0x40D3, 2 + compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2 goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_1FA490 checkplayergender compare VAR_RESULT, MALE diff --git a/data/maps/MagmaHideout_4F/scripts.inc b/data/maps/MagmaHideout_4F/scripts.inc index e6464a7f94..7bbb4ac184 100644 --- a/data/maps/MagmaHideout_4F/scripts.inc +++ b/data/maps/MagmaHideout_4F/scripts.inc @@ -62,7 +62,7 @@ MagmaHideout_4F_EventScript_23A560:: @ 823A560 closemessage clearflag FLAG_HIDE_SLATEPORT_CITY_CAPTAIN_STERN clearflag FLAG_HIDE_SLATEPORT_CITY_GABBY_AND_TY - setvar VAR_SLATEPORT_STATE, 1 + setvar VAR_SLATEPORT_CITY_STATE, 1 setflag FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT setvar VAR_SLATEPORT_HARBOR_STATE, 1 fadescreen 1 diff --git a/data/maps/MirageTower_4F/scripts.inc b/data/maps/MirageTower_4F/scripts.inc index 3d8dd80d0a..5208820df1 100644 --- a/data/maps/MirageTower_4F/scripts.inc +++ b/data/maps/MirageTower_4F/scripts.inc @@ -52,7 +52,7 @@ MirageTower_4F_EventScript_23ADCA:: @ 823ADCA waitstate special DoMirageTowerCeilingCrumble waitstate - setvar VAR_ROUTE_111_STATE, 1 + setvar VAR_MIRAGE_TOWER_STATE, 1 clearflag FLAG_LANDMARK_MIRAGE_TOWER warp MAP_ROUTE111, 255, 19, 59 waitstate diff --git a/data/maps/MossdeepCity/map.json b/data/maps/MossdeepCity/map.json index 533183a358..db24a9b3b3 100644 --- a/data/maps/MossdeepCity/map.json +++ b/data/maps/MossdeepCity/map.json @@ -366,7 +366,7 @@ "x": 42, "y": 21, "elevation": 5, - "var": "VAR_MOSSDEEP_STATE", + "var": "VAR_MOSSDEEP_CITY_STATE", "var_value": "1", "script": "MossdeepCity_EventScript_1E4B41" }, @@ -375,7 +375,7 @@ "x": 41, "y": 22, "elevation": 5, - "var": "VAR_MOSSDEEP_STATE", + "var": "VAR_MOSSDEEP_CITY_STATE", "var_value": "1", "script": "MossdeepCity_EventScript_1E4B41" }, @@ -384,7 +384,7 @@ "x": 41, "y": 23, "elevation": 5, - "var": "VAR_MOSSDEEP_STATE", + "var": "VAR_MOSSDEEP_CITY_STATE", "var_value": "1", "script": "MossdeepCity_EventScript_1E4B41" }, @@ -393,7 +393,7 @@ "x": 41, "y": 24, "elevation": 5, - "var": "VAR_MOSSDEEP_STATE", + "var": "VAR_MOSSDEEP_CITY_STATE", "var_value": "1", "script": "MossdeepCity_EventScript_1E4B41" }, @@ -402,7 +402,7 @@ "x": 40, "y": 25, "elevation": 5, - "var": "VAR_MOSSDEEP_STATE", + "var": "VAR_MOSSDEEP_CITY_STATE", "var_value": "1", "script": "MossdeepCity_EventScript_1E4B41" }, @@ -411,7 +411,7 @@ "x": 40, "y": 26, "elevation": 5, - "var": "VAR_MOSSDEEP_STATE", + "var": "VAR_MOSSDEEP_CITY_STATE", "var_value": "1", "script": "MossdeepCity_EventScript_1E4B41" } @@ -482,4 +482,4 @@ "script": "MossdeepCity_EventScript_1E4B14" } ] -} \ No newline at end of file +} diff --git a/data/maps/MossdeepCity/scripts.inc b/data/maps/MossdeepCity/scripts.inc index 2da9f1f194..646b1d9087 100644 --- a/data/maps/MossdeepCity/scripts.inc +++ b/data/maps/MossdeepCity/scripts.inc @@ -94,7 +94,7 @@ MossdeepCity_EventScript_1E4B41:: @ 81E4B41 removeobject 12 removeobject 13 delay 30 - setvar VAR_MOSSDEEP_STATE, 2 + setvar VAR_MOSSDEEP_CITY_STATE, 2 setflag FLAG_HIDE_MOSSDEEP_CITY_TEAM_MAGMA releaseall end diff --git a/data/maps/MossdeepCity_Gym/scripts.inc b/data/maps/MossdeepCity_Gym/scripts.inc index c0f092c6a6..3779fa8d25 100644 --- a/data/maps/MossdeepCity_Gym/scripts.inc +++ b/data/maps/MossdeepCity_Gym/scripts.inc @@ -71,7 +71,7 @@ MossdeepCity_Gym_EventScript_2208D1:: @ 82208D1 clearflag FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_1F_TEAM_MAGMA clearflag FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_2F_TEAM_MAGMA clearflag FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_2F_STEVEN - setvar VAR_MOSSDEEP_STATE, 1 + setvar VAR_MOSSDEEP_CITY_STATE, 1 setflag FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_1F_STEVEN setvar VAR_MOSSDEEP_SPACE_CENTER_STATE_2, 1 call MossdeepCity_Gym_EventScript_22095B diff --git a/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc index 66fd663b1b..b129e137eb 100644 --- a/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc @@ -4,7 +4,7 @@ MossdeepCity_SpaceCenter_1F_MapScripts:: @ 8222F41 .byte 0 MossdeepCity_SpaceCenter_1F_OnTransition: @ 8222F4C - compare VAR_MOSSDEEP_STATE, 2 + compare VAR_MOSSDEEP_CITY_STATE, 2 goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_222F58 end @@ -39,7 +39,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_222FBA:: @ 8222FBA end MossdeepCity_SpaceCenter_1F_MapScript1_222FC2: @ 8222FC2 - compare VAR_MOSSDEEP_STATE, 2 + compare VAR_MOSSDEEP_CITY_STATE, 2 goto_if_le MossdeepCity_SpaceCenter_1F_EventScript_222FCE end @@ -50,7 +50,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_222FCE:: @ 8222FCE MossdeepCity_SpaceCenter_1F_EventScript_222FD8:: @ 8222FD8 lock faceplayer - compare VAR_MOSSDEEP_STATE, 2 + compare VAR_MOSSDEEP_CITY_STATE, 2 goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_223024 dotimebasedevents specialvar VAR_RESULT, GetWeekCount @@ -98,7 +98,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_22305A:: @ 822305A MossdeepCity_SpaceCenter_1F_EventScript_223063:: @ 8223063 lock faceplayer - compare VAR_MOSSDEEP_STATE, 2 + compare VAR_MOSSDEEP_CITY_STATE, 2 goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_22307A msgbox MossdeepCity_SpaceCenter_1F_Text_2233D3, MSGBOX_DEFAULT release @@ -114,7 +114,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_22307A:: @ 822307A MossdeepCity_SpaceCenter_1F_EventScript_22308E:: @ 822308E lock faceplayer - compare VAR_MOSSDEEP_STATE, 2 + compare VAR_MOSSDEEP_CITY_STATE, 2 goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_2230DA goto_if_set FLAG_RECEIVED_SUN_STONE_MOSSDEEP, MossdeepCity_SpaceCenter_1F_EventScript_2230D0 msgbox MossdeepCity_SpaceCenter_1F_Text_223540, MSGBOX_DEFAULT @@ -155,9 +155,9 @@ MossdeepCity_SpaceCenter_1F_EventScript_22312D:: @ 822312D lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_1F_EventScript_223154 - compare VAR_MOSSDEEP_STATE, 2 + compare VAR_MOSSDEEP_CITY_STATE, 2 goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_22315E - compare VAR_MOSSDEEP_STATE, 2 + compare VAR_MOSSDEEP_CITY_STATE, 2 goto_if_lt MossdeepCity_SpaceCenter_1F_EventScript_223154 goto MossdeepCity_SpaceCenter_1F_EventScript_22315E end @@ -176,9 +176,9 @@ MossdeepCity_SpaceCenter_1F_EventScript_223168:: @ 8223168 lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_1F_EventScript_22318F - compare VAR_MOSSDEEP_STATE, 2 + compare VAR_MOSSDEEP_CITY_STATE, 2 goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_2231A4 - compare VAR_MOSSDEEP_STATE, 2 + compare VAR_MOSSDEEP_CITY_STATE, 2 goto_if_lt MossdeepCity_SpaceCenter_1F_EventScript_22318F goto MossdeepCity_SpaceCenter_1F_EventScript_2231A4 end diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc index b258740aca..11abafa0cf 100644 --- a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc @@ -4,7 +4,7 @@ MossdeepCity_SpaceCenter_2F_MapScripts:: @ 8223D58 .byte 0 MossdeepCity_SpaceCenter_2F_OnTransition: @ 8223D63 - compare VAR_MOSSDEEP_STATE, 2 + compare VAR_MOSSDEEP_CITY_STATE, 2 call_if_eq MossdeepCity_SpaceCenter_2F_EventScript_223D7A compare VAR_MOSSDEEP_SPACE_CENTER_STATE_2, 2 call_if_eq MossdeepCity_SpaceCenter_2F_EventScript_223D9F @@ -98,9 +98,9 @@ MossdeepCity_SpaceCenter_2F_EventScript_223E8D:: @ 8223E8D lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_2F_EventScript_223EB4 - compare VAR_MOSSDEEP_STATE, 2 + compare VAR_MOSSDEEP_CITY_STATE, 2 goto_if_eq MossdeepCity_SpaceCenter_2F_EventScript_223EBE - compare VAR_MOSSDEEP_STATE, 2 + compare VAR_MOSSDEEP_CITY_STATE, 2 goto_if_lt MossdeepCity_SpaceCenter_2F_EventScript_223EB4 goto MossdeepCity_SpaceCenter_2F_EventScript_223EBE end @@ -119,9 +119,9 @@ MossdeepCity_SpaceCenter_2F_EventScript_223EC8:: @ 8223EC8 lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_2F_EventScript_223EEF - compare VAR_MOSSDEEP_STATE, 2 + compare VAR_MOSSDEEP_CITY_STATE, 2 goto_if_eq MossdeepCity_SpaceCenter_2F_EventScript_223EF9 - compare VAR_MOSSDEEP_STATE, 2 + compare VAR_MOSSDEEP_CITY_STATE, 2 goto_if_lt MossdeepCity_SpaceCenter_2F_EventScript_223EEF goto MossdeepCity_SpaceCenter_2F_EventScript_223EF9 end @@ -140,9 +140,9 @@ MossdeepCity_SpaceCenter_2F_EventScript_223F03:: @ 8223F03 lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_2F_EventScript_223F2A - compare VAR_MOSSDEEP_STATE, 2 + compare VAR_MOSSDEEP_CITY_STATE, 2 goto_if_eq MossdeepCity_SpaceCenter_2F_EventScript_223F34 - compare VAR_MOSSDEEP_STATE, 2 + compare VAR_MOSSDEEP_CITY_STATE, 2 goto_if_lt MossdeepCity_SpaceCenter_2F_EventScript_223F2A goto MossdeepCity_SpaceCenter_2F_EventScript_223F34 end @@ -287,7 +287,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_224071:: @ 8224071 delay 20 msgbox MossdeepCity_SpaceCenter_2F_Text_2249DC, MSGBOX_DEFAULT closemessage - setvar VAR_MOSSDEEP_STATE, 3 + setvar VAR_MOSSDEEP_CITY_STATE, 3 fadedefaultbgm fadescreen 1 setvar VAR_MOSSDEEP_SPACE_CENTER_STATE_2, 3 diff --git a/data/maps/OldaleTown/map.json b/data/maps/OldaleTown/map.json index 37b6105f2c..5f91e81ed2 100644 --- a/data/maps/OldaleTown/map.json +++ b/data/maps/OldaleTown/map.json @@ -119,7 +119,7 @@ "x": 0, "y": 10, "elevation": 3, - "var": "VAR_ROUTE102_ACCESSIBLE", + "var": "VAR_OLDALE_TOWN_STATE", "var_value": "0", "script": "OldaleTown_EventScript_1E903F" }, @@ -128,7 +128,7 @@ "x": 8, "y": 19, "elevation": 3, - "var": "VAR_OLDALE_STATE", + "var": "VAR_OLDALE_RIVAL_STATE", "var_value": "1", "script": "OldaleTown_EventScript_1E9086" }, @@ -137,7 +137,7 @@ "x": 9, "y": 19, "elevation": 3, - "var": "VAR_OLDALE_STATE", + "var": "VAR_OLDALE_RIVAL_STATE", "var_value": "1", "script": "OldaleTown_EventScript_1E90A6" }, @@ -146,7 +146,7 @@ "x": 10, "y": 19, "elevation": 3, - "var": "VAR_OLDALE_STATE", + "var": "VAR_OLDALE_RIVAL_STATE", "var_value": "1", "script": "OldaleTown_EventScript_1E90C6" } @@ -193,4 +193,4 @@ "script": "Common_EventScript_ShowPokemartSign" } ] -} \ No newline at end of file +} diff --git a/data/maps/OldaleTown/scripts.inc b/data/maps/OldaleTown/scripts.inc index 3a8b8046b7..71b930b836 100644 --- a/data/maps/OldaleTown/scripts.inc +++ b/data/maps/OldaleTown/scripts.inc @@ -11,7 +11,7 @@ OldaleTown_OnTransition: @ 81E8EA8 end OldaleTown_EventScript_1E8ECC:: @ 81E8ECC - setvar VAR_ROUTE102_ACCESSIBLE, 1 + setvar VAR_OLDALE_TOWN_STATE, 1 return OldaleTown_EventScript_1E8ED2:: @ 81E8ED2 @@ -280,7 +280,7 @@ OldaleTown_EventScript_1E911A:: @ 81E911A applymovement 4, OldaleTown_Movement_1E9177 waitmovement 0 removeobject 4 - setvar VAR_OLDALE_STATE, 2 + setvar VAR_OLDALE_RIVAL_STATE, 2 setflag FLAG_HIDE_OLDALE_TOWN_RIVAL releaseall end diff --git a/data/maps/PetalburgCity/map.json b/data/maps/PetalburgCity/map.json index 00e89bfa04..44402aff5c 100644 --- a/data/maps/PetalburgCity/map.json +++ b/data/maps/PetalburgCity/map.json @@ -193,7 +193,7 @@ "x": 8, "y": 10, "elevation": 3, - "var": "VAR_PETALBURG_STATE", + "var": "VAR_PETALBURG_CITY_STATE", "var_value": "0", "script": "PetalburgCity_EventScript_1DC49A" }, @@ -202,7 +202,7 @@ "x": 8, "y": 11, "elevation": 3, - "var": "VAR_PETALBURG_STATE", + "var": "VAR_PETALBURG_CITY_STATE", "var_value": "0", "script": "PetalburgCity_EventScript_1DC4A6" }, @@ -211,7 +211,7 @@ "x": 8, "y": 12, "elevation": 3, - "var": "VAR_PETALBURG_STATE", + "var": "VAR_PETALBURG_CITY_STATE", "var_value": "0", "script": "PetalburgCity_EventScript_1DC4B2" }, @@ -220,7 +220,7 @@ "x": 8, "y": 13, "elevation": 3, - "var": "VAR_PETALBURG_STATE", + "var": "VAR_PETALBURG_CITY_STATE", "var_value": "0", "script": "PetalburgCity_EventScript_1DC4BE" }, @@ -327,4 +327,4 @@ "flag": "FLAG_HIDDEN_ITEM_PETALBURG_CITY_RARE_CANDY" } ] -} \ No newline at end of file +} diff --git a/data/maps/PetalburgCity/scripts.inc b/data/maps/PetalburgCity/scripts.inc index 59e28734d8..e95fc9d929 100644 --- a/data/maps/PetalburgCity/scripts.inc +++ b/data/maps/PetalburgCity/scripts.inc @@ -5,11 +5,11 @@ PetalburgCity_MapScripts:: PetalburgCity_OnTransition: @ 81DC2D7 setflag FLAG_VISITED_PETALBURG_CITY - compare VAR_PETALBURG_STATE, 0 + compare VAR_PETALBURG_CITY_STATE, 0 call_if_eq PetalburgCity_EventScript_1DC307 - compare VAR_PETALBURG_STATE, 2 + compare VAR_PETALBURG_CITY_STATE, 2 call_if_eq PetalburgCity_EventScript_1DC30F - compare VAR_PETALBURG_STATE, 4 + compare VAR_PETALBURG_CITY_STATE, 4 call_if_eq PetalburgCity_EventScript_1DC30F compare VAR_PETALBURG_GYM_STATE, 8 call_if_eq PetalburgCity_EventScript_1DC316 @@ -29,8 +29,8 @@ PetalburgCity_EventScript_1DC316:: @ 81DC316 return PetalburgCity_MapScript2_1DC31C: @ 81DC31C - map_script_2 VAR_PETALBURG_STATE, 2, PetalburgCity_EventScript_1DC32E - map_script_2 VAR_PETALBURG_STATE, 4, PetalburgCity_EventScript_1DC390 + map_script_2 VAR_PETALBURG_CITY_STATE, 2, PetalburgCity_EventScript_1DC32E + map_script_2 VAR_PETALBURG_CITY_STATE, 4, PetalburgCity_EventScript_1DC390 .2byte 0 PetalburgCity_EventScript_1DC32E:: @ 81DC32E @@ -49,7 +49,7 @@ PetalburgCity_EventScript_1DC32E:: @ 81DC32E msgbox PetalburgCity_Text_1EC297, MSGBOX_DEFAULT closemessage clearflag FLAG_HIDE_MAP_NAME_POPUP - setvar VAR_PETALBURG_STATE, 3 + setvar VAR_PETALBURG_CITY_STATE, 3 fadedefaultbgm clearflag FLAG_SPECIAL_FLAG_0x4001 special LoadPlayerParty diff --git a/data/maps/PetalburgCity_Gym/scripts.inc b/data/maps/PetalburgCity_Gym/scripts.inc index d37bcfd913..a64c314a5b 100644 --- a/data/maps/PetalburgCity_Gym/scripts.inc +++ b/data/maps/PetalburgCity_Gym/scripts.inc @@ -217,7 +217,7 @@ PetalburgCity_Gym_EventScript_204AAC:: @ 8204AAC removeobject 10 setflag FLAG_HIDE_PETALBURG_CITY_WALLYS_AUNT setvar VAR_PETALBURG_GYM_STATE, 1 - setvar VAR_PETALBURG_STATE, 2 + setvar VAR_PETALBURG_CITY_STATE, 2 clearflag FLAG_HIDE_PETALBURG_CITY_WALLY clearflag FLAG_HIDE_PETALBURG_GYM_WALLY setflag FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_RIVAL @@ -496,7 +496,7 @@ PetalburgCity_Gym_EventScript_204F13:: @ 8204F13 compare VAR_0x8008, 3 call_if_eq PetalburgCity_Gym_EventScript_20506C removeobject 11 - setvar VAR_PETALBURG_STATE, 4 + setvar VAR_PETALBURG_CITY_STATE, 4 clearflag FLAG_HIDE_PETALBURG_CITY_WALLYS_UNCLE warp MAP_PETALBURG_CITY, 255, 15, 8 waitstate diff --git a/data/maps/PetalburgCity_WallysHouse/scripts.inc b/data/maps/PetalburgCity_WallysHouse/scripts.inc index 8b1421abb9..b285b220c5 100644 --- a/data/maps/PetalburgCity_WallysHouse/scripts.inc +++ b/data/maps/PetalburgCity_WallysHouse/scripts.inc @@ -4,7 +4,7 @@ PetalburgCity_WallysHouse_MapScripts:: @ 8204229 .byte 0 PetalburgCity_WallysHouse_MapScript2_204234: @ 8204234 - map_script_2 VAR_PETALBURG_STATE, 4, PetalburgCity_WallysHouse_EventScript_20423E + map_script_2 VAR_PETALBURG_CITY_STATE, 4, PetalburgCity_WallysHouse_EventScript_20423E .2byte 0 PetalburgCity_WallysHouse_EventScript_20423E:: @ 820423E @@ -13,7 +13,7 @@ PetalburgCity_WallysHouse_EventScript_20423E:: @ 820423E end PetalburgCity_WallysHouse_MapScript2_204247: @ 8204247 - map_script_2 VAR_PETALBURG_STATE, 4, PetalburgCity_WallysHouse_EventScript_204251 + map_script_2 VAR_PETALBURG_CITY_STATE, 4, PetalburgCity_WallysHouse_EventScript_204251 .2byte 0 PetalburgCity_WallysHouse_EventScript_204251:: @ 8204251 @@ -22,7 +22,7 @@ PetalburgCity_WallysHouse_EventScript_204251:: @ 8204251 giveitem_std ITEM_HM03 setflag FLAG_RECEIVED_HM03 msgbox PetalburgCity_WallysHouse_Text_20461A, MSGBOX_DEFAULT - setvar VAR_PETALBURG_STATE, 5 + setvar VAR_PETALBURG_CITY_STATE, 5 releaseall end diff --git a/data/maps/Route103/scripts.inc b/data/maps/Route103/scripts.inc index 0183d385bb..36b2c6c149 100644 --- a/data/maps/Route103/scripts.inc +++ b/data/maps/Route103/scripts.inc @@ -143,7 +143,7 @@ Route103_EventScript_1EC5A2:: @ 81EC5A2 setvar VAR_BIRCH_LAB_STATE, 4 clearflag FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_RIVAL setflag FLAG_DEFEATED_RIVAL_ROUTE103 - setvar VAR_OLDALE_STATE, 1 + setvar VAR_OLDALE_RIVAL_STATE, 1 clearflag FLAG_HIDE_OLDALE_TOWN_RIVAL savebgm MUS_DUMMY fadedefaultbgm diff --git a/data/maps/Route104/map.json b/data/maps/Route104/map.json index d2c7cc1463..a02a1e1704 100644 --- a/data/maps/Route104/map.json +++ b/data/maps/Route104/map.json @@ -537,7 +537,7 @@ "x": 17, "y": 51, "elevation": 3, - "var": "VAR_0x4063", + "var": "VAR_ROUTE104_STATE", "var_value": "1", "script": "Route104_EventScript_1ECCB3" } @@ -624,4 +624,4 @@ "flag": "FLAG_HIDDEN_ITEM_ROUTE_104_HEART_SCALE" } ] -} \ No newline at end of file +} diff --git a/data/maps/Route104/scripts.inc b/data/maps/Route104/scripts.inc index 33200b800d..1a677001d1 100644 --- a/data/maps/Route104/scripts.inc +++ b/data/maps/Route104/scripts.inc @@ -4,7 +4,7 @@ Route104_MapScripts:: @ 81ECC32 .byte 0 Route104_MapScript2_1ECC3D: @ 81ECC3D - map_script_2 VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE, 1, Route104_EventScript_1ECC47 + map_script_2 VAR_BOARD_BRINEY_BOAT_STATE, 1, Route104_EventScript_1ECC47 .2byte 0 Route104_EventScript_1ECC47:: @ 81ECC47 @@ -29,7 +29,7 @@ Route104_EventScript_1ECC74:: @ 81ECC74 return Route104_EventScript_1ECC78:: @ 81ECC78 - compare VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE, 1 + compare VAR_BOARD_BRINEY_BOAT_STATE, 1 goto_if_ge Route104_EventScript_1ECC9D goto_if_set FLAG_MET_RIVAL_RUSTBORO, Route104_EventScript_1ECC9D goto_if_unset FLAG_REGISTER_RIVAL_POKENAV, Route104_EventScript_1ECC9D @@ -49,8 +49,8 @@ Route104_EventScript_1ECC9E:: @ 81ECC9E Route104_EventScript_1ECCB3:: @ 81ECCB3 lockall setflag FLAG_HIDE_RUSBORO_CITY_RIVAL - setvar VAR_RUSTBORO_STATE, 8 - setvar VAR_0x4063, 2 + setvar VAR_RUSTBORO_CITY_STATE, 8 + setvar VAR_ROUTE104_STATE, 2 applymovement EVENT_OBJ_ID_PLAYER, Common_Movement_WalkInPlaceUp waitmovement 0 delay 10 @@ -417,7 +417,7 @@ Route104_EventScript_1ED139:: @ 81ED139 resetobjectpriority EVENT_OBJ_ID_PLAYER, MAP_ROUTE104 resetobjectpriority 2, MAP_DEWFORD_TOWN moveobjectoffscreen 2 - setvar VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE, 0 + setvar VAR_BOARD_BRINEY_BOAT_STATE, 0 goto_if_unset FLAG_DELIVERED_STEVEN_LETTER, Route104_EventScript_1ED1B4 goto_if_set FLAG_DELIVERED_STEVEN_LETTER, Route104_EventScript_1ED1BE end diff --git a/data/maps/Route104_MrBrineysHouse/scripts.inc b/data/maps/Route104_MrBrineysHouse/scripts.inc index 52fd4b96d1..c2877f0d95 100644 --- a/data/maps/Route104_MrBrineysHouse/scripts.inc +++ b/data/maps/Route104_MrBrineysHouse/scripts.inc @@ -75,12 +75,12 @@ Route104_MrBrineysHouse_EventScript_229E1D:: @ 8229E1D Route104_MrBrineysHouse_EventScript_229E27:: @ 8229E27 msgbox Route104_MrBrineysHouse_Text_229FE9, MSGBOX_DEFAULT call Route104_MrBrineysHouse_EventScript_271E95 - setvar VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE, 1 + setvar VAR_BOARD_BRINEY_BOAT_STATE, 1 clearflag FLAG_HIDE_ROUTE_104_MR_BRINEY setflag FLAG_HIDE_BRINEYS_HOUSE_MR_BRINEY setflag FLAG_HIDE_BRINEYS_HOUSE_PEEKO - setvar VAR_RUSTBORO_STATE, 8 - setvar VAR_0x4063, 2 + setvar VAR_RUSTBORO_CITY_STATE, 8 + setvar VAR_ROUTE104_STATE, 2 setflag FLAG_HIDE_RUSBORO_CITY_RIVAL setflag FLAG_HIDE_ROUTE_104_RIVAL warp MAP_ROUTE104, 255, 13, 51 diff --git a/data/maps/Route110/map.json b/data/maps/Route110/map.json index 8cbc93af62..570c38dcca 100644 --- a/data/maps/Route110/map.json +++ b/data/maps/Route110/map.json @@ -594,7 +594,7 @@ "x": 7, "y": 85, "elevation": 3, - "var": "VAR_0x40DA", + "var": "VAR_REGISTER_BIRCH_STATE", "var_value": "1", "script": "Route110_EventScript_1EF9CB" }, @@ -603,7 +603,7 @@ "x": 8, "y": 85, "elevation": 3, - "var": "VAR_0x40DA", + "var": "VAR_REGISTER_BIRCH_STATE", "var_value": "1", "script": "Route110_EventScript_1EF9D6" }, @@ -612,7 +612,7 @@ "x": 9, "y": 85, "elevation": 3, - "var": "VAR_0x40DA", + "var": "VAR_REGISTER_BIRCH_STATE", "var_value": "1", "script": "Route110_EventScript_1EF9E1" }, @@ -621,7 +621,7 @@ "x": 10, "y": 85, "elevation": 3, - "var": "VAR_0x40DA", + "var": "VAR_REGISTER_BIRCH_STATE", "var_value": "1", "script": "Route110_EventScript_1EF9EC" } @@ -762,4 +762,4 @@ "script": "Route110_EventScript_1EF34A" } ] -} \ No newline at end of file +} diff --git a/data/maps/Route110/scripts.inc b/data/maps/Route110/scripts.inc index bc47682074..67fbbd0a81 100644 --- a/data/maps/Route110/scripts.inc +++ b/data/maps/Route110/scripts.inc @@ -660,7 +660,7 @@ Route110_EventScript_1EF9F7:: @ 81EF9F7 compare VAR_0x8008, 4 call_if_eq Route110_EventScript_1EFB25 removeobject 36 - setvar VAR_0x40DA, 2 + setvar VAR_REGISTER_BIRCH_STATE, 2 releaseall end diff --git a/data/maps/Route111/scripts.inc b/data/maps/Route111/scripts.inc index bf79c5eeea..c913d7e6ec 100644 --- a/data/maps/Route111/scripts.inc +++ b/data/maps/Route111/scripts.inc @@ -7,7 +7,7 @@ Route111_MapScripts:: @ 81F0CA7 Route111_MapScript1_1F0CBC: @ 81F0CBC call_if_unset FLAG_REGI_DOORS_OPENED, Route111_EventScript_1F0CD1 - compare VAR_ROUTE_111_STATE, 1 + compare VAR_MIRAGE_TOWER_STATE, 1 call_if_eq Route111_EventScript_1F0CE4 end @@ -41,9 +41,9 @@ Route111_OnTransition: @ 81F0D87 setvar VAR_TRAINER_HILL_IS_ACTIVE, 0 special SetMirageTowerVisibility call_if_unset FLAG_MIRAGE_TOWER_VISIBLE, Route111_EventScript_1F0E3C - compare VAR_ROUTE_111_STATE, 1 + compare VAR_MIRAGE_TOWER_STATE, 1 call_if_eq Route111_EventScript_1F0DC2 - compare VAR_ROUTE_111_STATE, 2 + compare VAR_MIRAGE_TOWER_STATE, 2 call_if_eq Route111_EventScript_1F0E40 call Route111_EventScript_1F0DE6 call Route111_EventScript_28CCC7 @@ -101,11 +101,11 @@ Route111_EventScript_1F0E3C:: @ 81F0E3C return Route111_EventScript_1F0E40:: @ 81F0E40 - setvar VAR_ROUTE_111_STATE, 3 + setvar VAR_MIRAGE_TOWER_STATE, 3 return Route111_MapScript2_1F0E46: @ 81F0E46 - map_script_2 VAR_ROUTE_111_STATE, 1, Route111_EventScript_1F0E50 + map_script_2 VAR_MIRAGE_TOWER_STATE, 1, Route111_EventScript_1F0E50 .2byte 0 Route111_EventScript_1F0E50:: @ 81F0E50 @@ -113,7 +113,7 @@ Route111_EventScript_1F0E50:: @ 81F0E50 end Route111_MapScript2_1F0E56: @ 81F0E56 - map_script_2 VAR_ROUTE_111_STATE, 1, Route111_EventScript_1F0E60 + map_script_2 VAR_MIRAGE_TOWER_STATE, 1, Route111_EventScript_1F0E60 .2byte 0 Route111_EventScript_1F0E60:: @ 81F0E60 @@ -134,7 +134,7 @@ Route111_EventScript_1F0E60:: @ 81F0E60 waitstate special StartMirageTowerFossilFallAndSink waitstate - setvar VAR_ROUTE_111_STATE, 2 + setvar VAR_MIRAGE_TOWER_STATE, 2 clearflag FLAG_HIDE_DESERT_UNDERPASS_FOSSIL goto_if_set FLAG_CHOSE_ROOT_FOSSIL, Route111_EventScript_1F0EA7 msgbox Route111_Text_1F1C74, MSGBOX_DEFAULT @@ -411,9 +411,9 @@ Route111_EventScript_1F1192:: @ 81F1192 Route111_EventScript_1F119B:: @ 81F119B lock faceplayer - compare VAR_ROUTE_111_STATE, 3 + compare VAR_MIRAGE_TOWER_STATE, 3 goto_if_eq Route111_EventScript_1F11C6 - compare VAR_ROUTE_111_STATE, 2 + compare VAR_MIRAGE_TOWER_STATE, 2 goto_if_eq Route111_EventScript_1F11D0 goto_if_set FLAG_MIRAGE_TOWER_VISIBLE, Route111_EventScript_1F11DA msgbox Route111_Text_1F1A22, MSGBOX_DEFAULT diff --git a/data/maps/Route129/scripts.inc b/data/maps/Route129/scripts.inc index 49b26011ae..d57a27cf94 100644 --- a/data/maps/Route129/scripts.inc +++ b/data/maps/Route129/scripts.inc @@ -14,7 +14,7 @@ Route129_MapScript1_1F7294: @ 81F7294 Route129_OnTransition: @ 81F72AB compare VAR_SHOULD_END_UNUSUAL_WEATHER, 1 call_if_eq Route129_EventScript_273D13 - compare VAR_RAYQUAZA_STATE, 4 + compare VAR_SOOTOPOLIS_CITY_STATE, 4 call_if_ge Route129_EventScript_1F72D8 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_129_WEST call_if_eq UnusualWeather_StartKyogreWeather diff --git a/data/maps/Route130/scripts.inc b/data/maps/Route130/scripts.inc index 2132872378..18bccb1851 100644 --- a/data/maps/Route130/scripts.inc +++ b/data/maps/Route130/scripts.inc @@ -3,7 +3,7 @@ Route130_MapScripts:: @ 81F735F .byte 0 Route130_OnTransition: @ 81F7365 - compare VAR_RAYQUAZA_STATE, 4 + compare VAR_SOOTOPOLIS_CITY_STATE, 4 call_if_ge Route130_EventScript_1F73B5 specialvar VAR_RESULT, IsMirageIslandPresent compare VAR_RESULT, 1 diff --git a/data/maps/Route131/scripts.inc b/data/maps/Route131/scripts.inc index 17ac3f52f7..c1c3e26dc2 100644 --- a/data/maps/Route131/scripts.inc +++ b/data/maps/Route131/scripts.inc @@ -3,7 +3,7 @@ Route131_MapScripts:: @ 81F7404 .byte 0 Route131_OnTransition: @ 81F740A - compare VAR_RAYQUAZA_STATE, 4 + compare VAR_SOOTOPOLIS_CITY_STATE, 4 call_if_ge Route131_EventScript_1F741F call Route131_EventScript_1F741B end diff --git a/data/maps/RustboroCity/map.json b/data/maps/RustboroCity/map.json index 94e22985be..d9fd0d8ccb 100644 --- a/data/maps/RustboroCity/map.json +++ b/data/maps/RustboroCity/map.json @@ -331,7 +331,7 @@ "x": 23, "y": 20, "elevation": 3, - "var": "VAR_RUSTBORO_STATE", + "var": "VAR_RUSTBORO_CITY_STATE", "var_value": "1", "script": "RustboroCity_EventScript_1E095A" }, @@ -340,7 +340,7 @@ "x": 23, "y": 21, "elevation": 3, - "var": "VAR_RUSTBORO_STATE", + "var": "VAR_RUSTBORO_CITY_STATE", "var_value": "1", "script": "RustboroCity_EventScript_1E0971" }, @@ -349,7 +349,7 @@ "x": 23, "y": 22, "elevation": 3, - "var": "VAR_RUSTBORO_STATE", + "var": "VAR_RUSTBORO_CITY_STATE", "var_value": "1", "script": "RustboroCity_EventScript_1E0988" }, @@ -358,7 +358,7 @@ "x": 23, "y": 23, "elevation": 3, - "var": "VAR_RUSTBORO_STATE", + "var": "VAR_RUSTBORO_CITY_STATE", "var_value": "1", "script": "RustboroCity_EventScript_1E099F" }, @@ -367,7 +367,7 @@ "x": 23, "y": 24, "elevation": 3, - "var": "VAR_RUSTBORO_STATE", + "var": "VAR_RUSTBORO_CITY_STATE", "var_value": "1", "script": "RustboroCity_EventScript_1E09B6" }, @@ -376,7 +376,7 @@ "x": 30, "y": 9, "elevation": 3, - "var": "VAR_RUSTBORO_STATE", + "var": "VAR_RUSTBORO_CITY_STATE", "var_value": "2", "script": "RustboroCity_EventScript_1E0AFE" }, @@ -385,7 +385,7 @@ "x": 29, "y": 10, "elevation": 3, - "var": "VAR_RUSTBORO_STATE", + "var": "VAR_RUSTBORO_CITY_STATE", "var_value": "2", "script": "RustboroCity_EventScript_1E0B0A" }, @@ -394,7 +394,7 @@ "x": 30, "y": 11, "elevation": 3, - "var": "VAR_RUSTBORO_STATE", + "var": "VAR_RUSTBORO_CITY_STATE", "var_value": "2", "script": "RustboroCity_EventScript_1E0B16" }, @@ -403,7 +403,7 @@ "x": 30, "y": 12, "elevation": 3, - "var": "VAR_RUSTBORO_STATE", + "var": "VAR_RUSTBORO_CITY_STATE", "var_value": "2", "script": "RustboroCity_EventScript_1E0B22" }, @@ -412,7 +412,7 @@ "x": 30, "y": 9, "elevation": 3, - "var": "VAR_RUSTBORO_STATE", + "var": "VAR_RUSTBORO_CITY_STATE", "var_value": "4", "script": "RustboroCity_EventScript_1E0C2B" }, @@ -421,7 +421,7 @@ "x": 31, "y": 10, "elevation": 3, - "var": "VAR_RUSTBORO_STATE", + "var": "VAR_RUSTBORO_CITY_STATE", "var_value": "4", "script": "RustboroCity_EventScript_1E0C37" }, @@ -430,7 +430,7 @@ "x": 30, "y": 11, "elevation": 3, - "var": "VAR_RUSTBORO_STATE", + "var": "VAR_RUSTBORO_CITY_STATE", "var_value": "4", "script": "RustboroCity_EventScript_1E0C43" }, @@ -439,7 +439,7 @@ "x": 30, "y": 12, "elevation": 3, - "var": "VAR_RUSTBORO_STATE", + "var": "VAR_RUSTBORO_CITY_STATE", "var_value": "4", "script": "RustboroCity_EventScript_1E0C4F" }, @@ -448,7 +448,7 @@ "x": 12, "y": 53, "elevation": 3, - "var": "VAR_RUSTBORO_STATE", + "var": "VAR_RUSTBORO_CITY_STATE", "var_value": "7", "script": "RustboroCity_EventScript_1E0DF3" }, @@ -457,7 +457,7 @@ "x": 13, "y": 53, "elevation": 3, - "var": "VAR_RUSTBORO_STATE", + "var": "VAR_RUSTBORO_CITY_STATE", "var_value": "7", "script": "RustboroCity_EventScript_1E0E33" }, @@ -466,7 +466,7 @@ "x": 14, "y": 53, "elevation": 3, - "var": "VAR_RUSTBORO_STATE", + "var": "VAR_RUSTBORO_CITY_STATE", "var_value": "7", "script": "RustboroCity_EventScript_1E0E73" }, @@ -475,7 +475,7 @@ "x": 15, "y": 53, "elevation": 3, - "var": "VAR_RUSTBORO_STATE", + "var": "VAR_RUSTBORO_CITY_STATE", "var_value": "7", "script": "RustboroCity_EventScript_1E0EB3" }, @@ -484,7 +484,7 @@ "x": 16, "y": 53, "elevation": 3, - "var": "VAR_RUSTBORO_STATE", + "var": "VAR_RUSTBORO_CITY_STATE", "var_value": "7", "script": "RustboroCity_EventScript_1E0EF3" }, @@ -493,7 +493,7 @@ "x": 17, "y": 53, "elevation": 3, - "var": "VAR_RUSTBORO_STATE", + "var": "VAR_RUSTBORO_CITY_STATE", "var_value": "7", "script": "RustboroCity_EventScript_1E0F33" }, @@ -502,7 +502,7 @@ "x": 18, "y": 53, "elevation": 3, - "var": "VAR_RUSTBORO_STATE", + "var": "VAR_RUSTBORO_CITY_STATE", "var_value": "7", "script": "RustboroCity_EventScript_1E0F73" }, @@ -511,7 +511,7 @@ "x": 19, "y": 53, "elevation": 3, - "var": "VAR_RUSTBORO_STATE", + "var": "VAR_RUSTBORO_CITY_STATE", "var_value": "7", "script": "RustboroCity_EventScript_1E0FB3" } @@ -598,4 +598,4 @@ "script": "RustboroCity_EventScript_1E0919" } ] -} \ No newline at end of file +} diff --git a/data/maps/RustboroCity/scripts.inc b/data/maps/RustboroCity/scripts.inc index e72496ff30..cd5f4c84dd 100644 --- a/data/maps/RustboroCity/scripts.inc +++ b/data/maps/RustboroCity/scripts.inc @@ -6,10 +6,10 @@ RustboroCity_MapScripts:: @ 81E06BD RustboroCity_OnTransition: @ 81E06C8 setflag FLAG_VISITED_RUSTBORO_CITY call Common_EventScript_SetupRivalGender - compare VAR_RUSTBORO_STATE, 6 + compare VAR_RUSTBORO_CITY_STATE, 6 call_if_eq RustboroCity_EventScript_1E0707 getplayerxy VAR_TEMP_0, VAR_TEMP_1 - compare VAR_RUSTBORO_STATE, 6 + compare VAR_RUSTBORO_CITY_STATE, 6 goto_if_eq RustboroCity_EventScript_1E06EC end @@ -28,12 +28,12 @@ RustboroCity_EventScript_1E0707:: @ 81E0707 return RustboroCity_MapScript2_1E070B: @ 81E070B - map_script_2 VAR_RUSTBORO_STATE, 6, RustboroCity_EventScript_1E0715 + map_script_2 VAR_RUSTBORO_CITY_STATE, 6, RustboroCity_EventScript_1E0715 .2byte 0 RustboroCity_EventScript_1E0715:: @ 81E0715 lockall - setvar VAR_0x4063, 1 + setvar VAR_ROUTE104_STATE, 1 applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_Movement_1E0850 waitmovement 0 playse SE_KAIDAN @@ -99,7 +99,7 @@ RustboroCity_EventScript_1E07BD:: @ 81E07BD playse SE_KAIDAN removeobject 15 setflag FLAG_HIDE_RUSTBORO_CITY_SCIENTIST - setvar VAR_RUSTBORO_STATE, 7 + setvar VAR_RUSTBORO_CITY_STATE, 7 clearflag FLAG_HIDE_MAP_NAME_POPUP releaseall end @@ -302,7 +302,7 @@ RustboroCity_EventScript_1E09CD:: @ 81E09CD setobjectxyperm 9, 30, 10 clearflag FLAG_HIDE_RUSTBORO_CITY_DEVON_EMPLOYEE_1 setflag FLAG_DEVON_GOODS_STOLEN - setvar VAR_RUSTBORO_STATE, 2 + setvar VAR_RUSTBORO_CITY_STATE, 2 setvar VAR_RUSTURF_TUNNEL_STATE, 2 setvar VAR_ROUTE116_STATE, 1 clearflag FLAG_HIDE_ROUTE_116_MR_BRINEY @@ -493,7 +493,7 @@ RustboroCity_EventScript_1E0B2E:: @ 81E0B2E compare VAR_TEMP_1, 3 call_if_eq RustboroCity_EventScript_1E0BF3 setflag FLAG_INTERACTED_WITH_DEVON_EMPLOYEE_GOODS_STOLEN - setvar VAR_RUSTBORO_STATE, 3 + setvar VAR_RUSTBORO_CITY_STATE, 3 moveobjectoffscreen 9 msgbox RustboroCity_Text_1E183E, MSGBOX_DEFAULT releaseall @@ -596,7 +596,7 @@ RustboroCity_EventScript_1E0C5B:: @ 81E0C5B closemessage setflag FLAG_RETURNED_DEVON_GOODS setflag FLAG_HIDE_RUSTBORO_CITY_DEVON_EMPLOYEE_1 - setvar VAR_RUSTBORO_STATE, 5 + setvar VAR_RUSTBORO_CITY_STATE, 5 delay 30 warp MAP_RUSTBORO_CITY_DEVON_CORP_3F, 255, 2, 2 waitstate @@ -840,8 +840,8 @@ RustboroCity_EventScript_1E100B:: @ 81E100B closemessage delay 30 setflag FLAG_ENABLE_RIVAL_MATCH_CALL - setvar VAR_RUSTBORO_STATE, 8 - setvar VAR_0x4063, 2 + setvar VAR_RUSTBORO_CITY_STATE, 8 + setvar VAR_ROUTE104_STATE, 2 setvar VAR_0x8008, 0 msgbox RustboroCity_Text_1E1AFA, MSGBOX_YESNO compare VAR_RESULT, 1 @@ -911,8 +911,8 @@ RustboroCity_EventScript_1E1114:: @ 81E1114 closemessage delay 30 setflag FLAG_ENABLE_RIVAL_MATCH_CALL - setvar VAR_RUSTBORO_STATE, 8 - setvar VAR_0x4063, 2 + setvar VAR_RUSTBORO_CITY_STATE, 8 + setvar VAR_ROUTE104_STATE, 2 msgbox RustboroCity_Text_1E1E34, MSGBOX_YESNO compare VAR_RESULT, 1 goto_if_eq RustboroCity_EventScript_1E1191 diff --git a/data/maps/RustboroCity_DevonCorp_2F/scripts.inc b/data/maps/RustboroCity_DevonCorp_2F/scripts.inc index 8549d1644b..e5ac226c58 100644 --- a/data/maps/RustboroCity_DevonCorp_2F/scripts.inc +++ b/data/maps/RustboroCity_DevonCorp_2F/scripts.inc @@ -281,7 +281,7 @@ RustboroCity_DevonCorp_2F_EventScript_211BCF:: @ 8211BCF faceplayer compare VAR_FOSSIL_RESURRECTION_STATE, 1 call_if_eq RustboroCity_DevonCorp_2F_EventScript_211869 - compare VAR_RUSTBORO_STATE, 6 + compare VAR_RUSTBORO_CITY_STATE, 6 goto_if_ge RustboroCity_DevonCorp_2F_EventScript_211BF1 msgbox RustboroCity_DevonCorp_2F_Text_212338, MSGBOX_DEFAULT release diff --git a/data/maps/RustboroCity_DevonCorp_3F/scripts.inc b/data/maps/RustboroCity_DevonCorp_3F/scripts.inc index 6be85a0b04..6b83e195cd 100644 --- a/data/maps/RustboroCity_DevonCorp_3F/scripts.inc +++ b/data/maps/RustboroCity_DevonCorp_3F/scripts.inc @@ -68,7 +68,7 @@ RustboroCity_DevonCorp_3F_EventScript_21246E:: @ 821246E setvar VAR_BRINEY_LOCATION, 1 clearflag FLAG_HIDE_RUSBORO_CITY_RIVAL setvar VAR_DEVON_CORP_3F_STATE, 1 - setvar VAR_RUSTBORO_STATE, 6 + setvar VAR_RUSTBORO_CITY_STATE, 6 releaseall end diff --git a/data/maps/RustboroCity_Gym/scripts.inc b/data/maps/RustboroCity_Gym/scripts.inc index aaa3b3f0bc..04027dfa7f 100644 --- a/data/maps/RustboroCity_Gym/scripts.inc +++ b/data/maps/RustboroCity_Gym/scripts.inc @@ -18,7 +18,7 @@ RustboroCity_Gym_EventScript_212F66:: @ 8212F66 msgbox RustboroCity_Gym_Text_213816, MSGBOX_DEFAULT setflag FLAG_DEFEATED_RUSTBORO_GYM setflag FLAG_BADGE01_GET - setvar VAR_RUSTBORO_STATE, 1 + setvar VAR_RUSTBORO_CITY_STATE, 1 addvar VAR_PETALBURG_GYM_STATE, 1 setvar VAR_0x8008, 1 call RustboroCity_Gym_EventScript_271F43 diff --git a/data/maps/RusturfTunnel/scripts.inc b/data/maps/RusturfTunnel/scripts.inc index e489580c9f..8d2a4be80e 100644 --- a/data/maps/RusturfTunnel/scripts.inc +++ b/data/maps/RusturfTunnel/scripts.inc @@ -345,7 +345,7 @@ RusturfTunnel_EventScript_22D0C2:: @ 822D0C2 removeobject 7 clearflag FLAG_DEVON_GOODS_STOLEN setflag FLAG_RECOVERED_DEVON_GOODS - setvar VAR_RUSTBORO_STATE, 4 + setvar VAR_RUSTBORO_CITY_STATE, 4 setvar VAR_BRINEY_HOUSE_STATE, 1 setflag FLAG_HIDE_ROUTE_116_MR_BRINEY release diff --git a/data/maps/SeafloorCavern_Room9/scripts.inc b/data/maps/SeafloorCavern_Room9/scripts.inc index b5e5034e72..17b1515c0c 100644 --- a/data/maps/SeafloorCavern_Room9/scripts.inc +++ b/data/maps/SeafloorCavern_Room9/scripts.inc @@ -119,7 +119,7 @@ SeafloorCavern_Room9_EventScript_234DC9:: @ 8234DC9 waitmovement 0 msgbox SeafloorCavern_Room9_Text_235723, MSGBOX_DEFAULT setvar VAR_ROUTE128_STATE, 1 - setvar VAR_RAYQUAZA_STATE, 1 + setvar VAR_SOOTOPOLIS_CITY_STATE, 1 clearflag FLAG_HIDE_SOOTOPOLIS_CITY_STEVEN clearflag FLAG_HIDE_SOOTOPOLIS_CITY_ARCHIE clearflag FLAG_HIDE_SOOTOPOLIS_CITY_MAXIE diff --git a/data/maps/SkyPillar_Outside/scripts.inc b/data/maps/SkyPillar_Outside/scripts.inc index 9ff7dd01ef..95f50ec027 100644 --- a/data/maps/SkyPillar_Outside/scripts.inc +++ b/data/maps/SkyPillar_Outside/scripts.inc @@ -5,9 +5,9 @@ SkyPillar_Outside_MapScripts:: @ 82392A8 .byte 0 SkyPillar_Outside_OnTransition: @ 82392B8 - compare VAR_RAYQUAZA_STATE, 3 + compare VAR_SOOTOPOLIS_CITY_STATE, 3 call_if_eq SkyPillar_Outside_EventScript_2392CF - compare VAR_RAYQUAZA_STATE, 4 + compare VAR_SOOTOPOLIS_CITY_STATE, 4 call_if_ge SkyPillar_Outside_EventScript_2392D3 end @@ -29,7 +29,7 @@ SkyPillar_Outside_EventScript_2392E7:: @ 82392E7 return SkyPillar_Outside_MapScript2_2392FA: @ 82392FA - map_script_2 VAR_RAYQUAZA_STATE, 3, SkyPillar_Outside_EventScript_239304 + map_script_2 VAR_SOOTOPOLIS_CITY_STATE, 3, SkyPillar_Outside_EventScript_239304 .2byte 0 SkyPillar_Outside_EventScript_239304:: @ 8239304 @@ -82,7 +82,7 @@ SkyPillar_Outside_EventScript_239304:: @ 8239304 playse SE_KAIDAN fadescreenswapbuffers 1 clearflag FLAG_HIDE_MAP_NAME_POPUP - setvar VAR_RAYQUAZA_STATE, 4 + setvar VAR_SOOTOPOLIS_CITY_STATE, 4 removeobject 1 clearflag FLAG_HIDE_SOOTOPOLIS_CITY_WALLACE fadescreenswapbuffers 0 diff --git a/data/maps/SkyPillar_Top/scripts.inc b/data/maps/SkyPillar_Top/scripts.inc index 6afbbd58c4..0e9b4c3a12 100644 --- a/data/maps/SkyPillar_Top/scripts.inc +++ b/data/maps/SkyPillar_Top/scripts.inc @@ -130,7 +130,7 @@ SkyPillar_Top_EventScript_23979A:: @ 823979A applymovement EVENT_OBJ_ID_CAMERA, SkyPillar_Top_Movement_23985C waitmovement 0 special RemoveCameraObject - setvar VAR_RAYQUAZA_STATE, 5 + setvar VAR_SOOTOPOLIS_CITY_STATE, 5 setvar VAR_SKY_PILLAR_STATE, 1 setvar VAR_SKY_PILLAR_RAQUAZA_CRY_DONE, 1 releaseall diff --git a/data/maps/SlateportCity/scripts.inc b/data/maps/SlateportCity/scripts.inc index e2a3f5d939..a1ddb122d0 100644 --- a/data/maps/SlateportCity/scripts.inc +++ b/data/maps/SlateportCity/scripts.inc @@ -6,7 +6,7 @@ SlateportCity_MapScripts:: @ 81DCC61 SlateportCity_OnTransition: @ 81DCC6C setvar VAR_SLATEPORT_MUSEUM_1F_STATE, 0 call SlateportCity_EventScript_1DCC8D - compare VAR_SLATEPORT_STATE, 1 + compare VAR_SLATEPORT_CITY_STATE, 1 call_if_eq SlateportCity_EventScript_1DCC99 compare VAR_SLATEPORT_OUTSIDE_MUSEUM_STATE, 1 call_if_eq SlateportCity_EventScript_1DCCE7 @@ -170,7 +170,7 @@ SlateportCity_EventScript_1DCE38:: @ 81DCE38 SlateportCity_EventScript_1DCE42:: @ 81DCE42 lock faceplayer - compare VAR_SLATEPORT_STATE, 1 + compare VAR_SLATEPORT_CITY_STATE, 1 call_if_eq SlateportCity_EventScript_1DCE59 msgbox SlateportCity_Text_1DD81A, MSGBOX_DEFAULT release @@ -184,7 +184,7 @@ SlateportCity_EventScript_1DCE59:: @ 81DCE59 SlateportCity_EventScript_1DCE63:: @ 81DCE63 lock faceplayer - compare VAR_SLATEPORT_STATE, 1 + compare VAR_SLATEPORT_CITY_STATE, 1 call_if_eq SlateportCity_EventScript_1DCE7A msgbox SlateportCity_Text_1DD8A6, MSGBOX_DEFAULT release @@ -198,7 +198,7 @@ SlateportCity_EventScript_1DCE7A:: @ 81DCE7A SlateportCity_EventScript_1DCE84:: @ 81DCE84 lock faceplayer - compare VAR_SLATEPORT_STATE, 1 + compare VAR_SLATEPORT_CITY_STATE, 1 call_if_eq SlateportCity_EventScript_1DCEA4 goto_if_set FLAG_RECEIVED_SECRET_POWER, SlateportCity_EventScript_1DCEAE msgbox SlateportCity_Text_1DD93D, MSGBOX_DEFAULT @@ -218,7 +218,7 @@ SlateportCity_EventScript_1DCEAE:: @ 81DCEAE SlateportCity_EventScript_1DCEB8:: @ 81DCEB8 lock faceplayer - compare VAR_SLATEPORT_STATE, 1 + compare VAR_SLATEPORT_CITY_STATE, 1 call_if_eq SlateportCity_EventScript_1DCECF msgbox SlateportCity_Text_1DDA34, MSGBOX_DEFAULT release @@ -230,7 +230,7 @@ SlateportCity_EventScript_1DCECF:: @ 81DCECF end SlateportCity_EventScript_1DCED9:: @ 81DCED9 - compare VAR_SLATEPORT_STATE, 1 + compare VAR_SLATEPORT_CITY_STATE, 1 goto_if_eq SlateportCity_EventScript_1DCEED msgbox SlateportCity_Text_1DDA9A, MSGBOX_NPC end @@ -242,7 +242,7 @@ SlateportCity_EventScript_1DCEED:: @ 81DCEED SlateportCity_EventScript_1DCEF6:: @ 81DCEF6 lock faceplayer - compare VAR_SLATEPORT_STATE, 1 + compare VAR_SLATEPORT_CITY_STATE, 1 call_if_eq SlateportCity_EventScript_1DCF0D msgbox SlateportCity_Text_1DDB21, MSGBOX_DEFAULT release @@ -323,7 +323,7 @@ SlateportCity_EventScript_1DCFB2:: @ 81DCFB2 SlateportCity_EventScript_1DCFBB:: @ 81DCFBB lock faceplayer - compare VAR_SLATEPORT_STATE, 1 + compare VAR_SLATEPORT_CITY_STATE, 1 call_if_eq SlateportCity_EventScript_1DCFD2 msgbox SlateportCity_Text_1DE10E, MSGBOX_DEFAULT release @@ -609,7 +609,7 @@ SlateportCity_EventScript_1DD1F8:: @ 81DD1F8 clearflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_SUBMARINE_SHADOW clearflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_AQUA_GRUNT clearflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_ARCHIE - setvar VAR_SLATEPORT_STATE, 2 + setvar VAR_SLATEPORT_CITY_STATE, 2 warp MAP_SLATEPORT_CITY_HARBOR, 255, 11, 14 waitstate releaseall diff --git a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc index 96ae966859..d15a23558e 100644 --- a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc +++ b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc @@ -81,7 +81,7 @@ SlateportCity_OceanicMuseum_2F_EventScript_20BB00:: @ 820BB00 special HealPlayerParty removeobject 1 setflag FLAG_HIDE_ROUTE_110_TEAM_AQUA - compare VAR_0x40DA, 0 + compare VAR_REGISTER_BIRCH_STATE, 0 call_if_eq SlateportCity_OceanicMuseum_2F_EventScript_20BC8C setflag FLAG_DELIVERED_DEVON_GOODS clearflag FLAG_HIDE_ROUTE_116_DEVON_EMPLOYEE @@ -92,7 +92,7 @@ SlateportCity_OceanicMuseum_2F_EventScript_20BB00:: @ 820BB00 end SlateportCity_OceanicMuseum_2F_EventScript_20BC8C:: @ 820BC8C - setvar VAR_0x40DA, 1 + setvar VAR_REGISTER_BIRCH_STATE, 1 return SlateportCity_OceanicMuseum_2F_EventScript_20BC92:: @ 820BC92 diff --git a/data/maps/SootopolisCity/scripts.inc b/data/maps/SootopolisCity/scripts.inc index ca562a87c9..7d2143346a 100644 --- a/data/maps/SootopolisCity/scripts.inc +++ b/data/maps/SootopolisCity/scripts.inc @@ -33,31 +33,31 @@ SootopolisCity_EventScript_1E56E5:: @ 81E56E5 SootopolisCity_OnTransition: @ 81E56EF setflag FLAG_VISITED_SOOTOPOLIS_CITY - compare VAR_RAYQUAZA_STATE, 1 + compare VAR_SOOTOPOLIS_CITY_STATE, 1 call_if_eq SootopolisCity_EventScript_1E5781 compare VAR_SKY_PILLAR_STATE, 1 call_if_eq SootopolisCity_EventScript_1E5781 call SootopolisCity_EventScript_1E5805 call SootopolisCity_EventScript_1E57B2 - compare VAR_RAYQUAZA_STATE, 1 + compare VAR_SOOTOPOLIS_CITY_STATE, 1 call_if_eq SootopolisCity_EventScript_1E5785 - compare VAR_RAYQUAZA_STATE, 2 + compare VAR_SOOTOPOLIS_CITY_STATE, 2 call_if_eq SootopolisCity_EventScript_1E5785 - compare VAR_RAYQUAZA_STATE, 3 + compare VAR_SOOTOPOLIS_CITY_STATE, 3 call_if_eq SootopolisCity_EventScript_1E5785 - compare VAR_RAYQUAZA_STATE, 4 + compare VAR_SOOTOPOLIS_CITY_STATE, 4 call_if_eq SootopolisCity_EventScript_1E5785 - compare VAR_RAYQUAZA_STATE, 5 + compare VAR_SOOTOPOLIS_CITY_STATE, 5 call_if_eq SootopolisCity_EventScript_1E5785 - compare VAR_RAYQUAZA_STATE, 2 + compare VAR_SOOTOPOLIS_CITY_STATE, 2 call_if_eq SootopolisCity_EventScript_1E5842 - compare VAR_RAYQUAZA_STATE, 3 + compare VAR_SOOTOPOLIS_CITY_STATE, 3 call_if_eq SootopolisCity_EventScript_1E5842 - compare VAR_RAYQUAZA_STATE, 4 + compare VAR_SOOTOPOLIS_CITY_STATE, 4 call_if_eq SootopolisCity_EventScript_1E585B - compare VAR_RAYQUAZA_STATE, 5 + compare VAR_SOOTOPOLIS_CITY_STATE, 5 call_if_eq SootopolisCity_EventScript_1E5871 - compare VAR_RAYQUAZA_STATE, 6 + compare VAR_SOOTOPOLIS_CITY_STATE, 6 call_if_eq SootopolisCity_EventScript_1E58D3 end @@ -77,17 +77,17 @@ SootopolisCity_EventScript_1E5785:: @ 81E5785 return SootopolisCity_EventScript_1E57B2:: @ 81E57B2 - compare VAR_RAYQUAZA_STATE, 0 + compare VAR_SOOTOPOLIS_CITY_STATE, 0 goto_if_eq SootopolisCity_EventScript_1E5800 - compare VAR_RAYQUAZA_STATE, 6 + compare VAR_SOOTOPOLIS_CITY_STATE, 6 goto_if_ge SootopolisCity_EventScript_1E5800 - compare VAR_RAYQUAZA_STATE, 1 + compare VAR_SOOTOPOLIS_CITY_STATE, 1 goto_if_eq SootopolisCity_EventScript_1E5801 - compare VAR_RAYQUAZA_STATE, 2 + compare VAR_SOOTOPOLIS_CITY_STATE, 2 goto_if_eq SootopolisCity_EventScript_1E5801 - compare VAR_RAYQUAZA_STATE, 3 + compare VAR_SOOTOPOLIS_CITY_STATE, 3 goto_if_eq SootopolisCity_EventScript_1E5801 - compare VAR_RAYQUAZA_STATE, 4 + compare VAR_SOOTOPOLIS_CITY_STATE, 4 goto_if_eq SootopolisCity_EventScript_1E5801 compare VAR_SKY_PILLAR_STATE, 1 goto_if_le SootopolisCity_EventScript_1E5801 @@ -101,11 +101,11 @@ SootopolisCity_EventScript_1E5801:: @ 81E5801 return SootopolisCity_EventScript_1E5805:: @ 81E5805 - compare VAR_RAYQUAZA_STATE, 0 + compare VAR_SOOTOPOLIS_CITY_STATE, 0 goto_if_eq SootopolisCity_EventScript_1E583D - compare VAR_RAYQUAZA_STATE, 6 + compare VAR_SOOTOPOLIS_CITY_STATE, 6 goto_if_ge SootopolisCity_EventScript_1E583D - compare VAR_RAYQUAZA_STATE, 1 + compare VAR_SOOTOPOLIS_CITY_STATE, 1 goto_if_eq SootopolisCity_EventScript_1E583E compare VAR_SKY_PILLAR_STATE, 1 goto_if_eq SootopolisCity_EventScript_1E583E @@ -140,11 +140,11 @@ SootopolisCity_EventScript_1E5871:: @ 81E5871 setobjectxyperm 7, 29, 33 setobjectxyperm 16, 33, 35 setobjectxyperm 17, 34, 35 - compare VAR_SOOTOPOLIS_STATE, 0 + compare VAR_SOOTOPOLIS_WALLACE_STATE, 0 call_if_eq SootopolisCity_EventScript_1E58AF - compare VAR_SOOTOPOLIS_STATE, 1 + compare VAR_SOOTOPOLIS_WALLACE_STATE, 1 call_if_eq SootopolisCity_EventScript_1E58BB - compare VAR_SOOTOPOLIS_STATE, 2 + compare VAR_SOOTOPOLIS_WALLACE_STATE, 2 call_if_eq SootopolisCity_EventScript_1E58C7 return @@ -168,7 +168,7 @@ SootopolisCity_EventScript_1E58D3:: @ 81E58D3 return SootopolisCity_MapScript2_1E58DB: @ 81E58DB - map_script_2 VAR_RAYQUAZA_STATE, 5, SootopolisCity_EventScript_1E58E5 + map_script_2 VAR_SOOTOPOLIS_CITY_STATE, 5, SootopolisCity_EventScript_1E58E5 .2byte 0 SootopolisCity_EventScript_1E58E5:: @ 81E58E5 @@ -192,7 +192,7 @@ SootopolisCity_MapScript1_1E590B: @ 81E590B end SootopolisCity_MapScript2_1E5914: @ 81E5914 - map_script_2 VAR_RAYQUAZA_STATE, 1, SootopolisCity_EventScript_1E5926 + map_script_2 VAR_SOOTOPOLIS_CITY_STATE, 1, SootopolisCity_EventScript_1E5926 map_script_2 VAR_SKY_PILLAR_STATE, 1, SootopolisCity_EventScript_1E5BFE .2byte 0 @@ -271,7 +271,7 @@ SootopolisCity_EventScript_1E5946:: @ 81E5946 applymovement EVENT_OBJ_ID_CAMERA, SootopolisCity_Movement_1E5A75 waitmovement 0 special RemoveCameraObject - setvar VAR_RAYQUAZA_STATE, 2 + setvar VAR_SOOTOPOLIS_CITY_STATE, 2 clearflag FLAG_HIDE_MAP_NAME_POPUP releaseall end @@ -371,7 +371,7 @@ SootopolisCity_EventScript_1E5A82:: @ 81E5A82 applymovement EVENT_OBJ_ID_CAMERA, SootopolisCity_Movement_1E5BAE waitmovement 0 special RemoveCameraObject - setvar VAR_RAYQUAZA_STATE, 2 + setvar VAR_SOOTOPOLIS_CITY_STATE, 2 clearflag FLAG_HIDE_MAP_NAME_POPUP releaseall end @@ -694,11 +694,11 @@ SootopolisCity_Movement_1E5E7F: @ 81E5E7F SootopolisCity_EventScript_1E5E8D:: @ 81E5E8D lock faceplayer - compare VAR_RAYQUAZA_STATE, 6 + compare VAR_SOOTOPOLIS_CITY_STATE, 6 goto_if_ge SootopolisCity_EventScript_1E5EC4 - compare VAR_RAYQUAZA_STATE, 5 + compare VAR_SOOTOPOLIS_CITY_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E5ECE - compare VAR_RAYQUAZA_STATE, 2 + compare VAR_SOOTOPOLIS_CITY_STATE, 2 goto_if_ge SootopolisCity_EventScript_1E5EBA msgbox SootopolisCity_Text_1E6D77, MSGBOX_DEFAULT release @@ -722,11 +722,11 @@ SootopolisCity_EventScript_1E5ECE:: @ 81E5ECE SootopolisCity_EventScript_1E5ED8:: @ 81E5ED8 lock faceplayer - compare VAR_RAYQUAZA_STATE, 1 + compare VAR_SOOTOPOLIS_CITY_STATE, 1 goto_if_le SootopolisCity_EventScript_1E5F1B - compare VAR_RAYQUAZA_STATE, 6 + compare VAR_SOOTOPOLIS_CITY_STATE, 6 goto_if_ge SootopolisCity_EventScript_1E5F1B - compare VAR_RAYQUAZA_STATE, 5 + compare VAR_SOOTOPOLIS_CITY_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E5F10 msgbox SootopolisCity_Text_1E6BFF, MSGBOX_DEFAULT closemessage @@ -794,7 +794,7 @@ SootopolisCity_EventScript_1E5FE2:: @ 81E5FE2 lockall applymovement 2, Common_Movement_FacePlayer waitmovement 0 - compare VAR_RAYQUAZA_STATE, 5 + compare VAR_SOOTOPOLIS_CITY_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E600D msgbox SootopolisCity_Text_1E71A1, MSGBOX_DEFAULT closemessage @@ -811,7 +811,7 @@ SootopolisCity_EventScript_1E600D:: @ 81E600D SootopolisCity_EventScript_1E6017:: @ 81E6017 lock faceplayer - compare VAR_RAYQUAZA_STATE, 6 + compare VAR_SOOTOPOLIS_CITY_STATE, 6 goto_if_ge SootopolisCity_EventScript_1E602E msgbox SootopolisCity_Text_1E6CCA, MSGBOX_DEFAULT release @@ -825,11 +825,11 @@ SootopolisCity_EventScript_1E602E:: @ 81E602E SootopolisCity_EventScript_1E6038:: @ 81E6038 lock faceplayer - compare VAR_RAYQUAZA_STATE, 6 + compare VAR_SOOTOPOLIS_CITY_STATE, 6 goto_if_ge SootopolisCity_EventScript_1E607A - compare VAR_RAYQUAZA_STATE, 5 + compare VAR_SOOTOPOLIS_CITY_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E6084 - compare VAR_RAYQUAZA_STATE, 2 + compare VAR_SOOTOPOLIS_CITY_STATE, 2 goto_if_ge SootopolisCity_EventScript_1E6065 msgbox SootopolisCity_Text_1E6F90, MSGBOX_DEFAULT release @@ -857,11 +857,11 @@ SootopolisCity_EventScript_1E608E:: @ 81E608E lockall applymovement 4, Common_Movement_FacePlayer waitmovement 0 - compare VAR_RAYQUAZA_STATE, 5 + compare VAR_SOOTOPOLIS_CITY_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E60D9 - compare VAR_RAYQUAZA_STATE, 6 + compare VAR_SOOTOPOLIS_CITY_STATE, 6 goto_if_ge SootopolisCity_EventScript_1E60CF - compare VAR_RAYQUAZA_STATE, 1 + compare VAR_SOOTOPOLIS_CITY_STATE, 1 goto_if_le SootopolisCity_EventScript_1E60CF msgbox SootopolisCity_Text_1E690B, MSGBOX_DEFAULT closemessage @@ -884,12 +884,12 @@ SootopolisCity_EventScript_1E60E3:: @ 81E60E3 lockall applymovement 5, Common_Movement_FacePlayer waitmovement 0 - compare VAR_RAYQUAZA_STATE, 5 + compare VAR_SOOTOPOLIS_CITY_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E612D goto_if_set FLAG_SYS_GAME_CLEAR, SootopolisCity_EventScript_1E6137 - compare VAR_RAYQUAZA_STATE, 6 + compare VAR_SOOTOPOLIS_CITY_STATE, 6 goto_if_ge SootopolisCity_EventScript_1E6141 - compare VAR_RAYQUAZA_STATE, 1 + compare VAR_SOOTOPOLIS_CITY_STATE, 1 goto_if_le SootopolisCity_EventScript_1E6141 msgbox SootopolisCity_Text_1E6692, MSGBOX_DEFAULT closemessage @@ -930,11 +930,11 @@ SootopolisCity_EventScript_1E6166:: @ 81E6166 applymovement 7, Common_Movement_FacePlayer waitmovement 0 call_if_unset FLAG_STEVEN_GUIDES_TO_CAVE_OF_ORIGIN, SootopolisCity_EventScript_1E61CC - compare VAR_RAYQUAZA_STATE, 2 + compare VAR_SOOTOPOLIS_CITY_STATE, 2 goto_if_eq SootopolisCity_EventScript_1E61AE - compare VAR_RAYQUAZA_STATE, 3 + compare VAR_SOOTOPOLIS_CITY_STATE, 3 goto_if_eq SootopolisCity_EventScript_1E61C2 - compare VAR_RAYQUAZA_STATE, 4 + compare VAR_SOOTOPOLIS_CITY_STATE, 4 goto_if_eq SootopolisCity_EventScript_1E61C2 goto_if_set FLAG_SOOTOPOLIS_ARCHIE_MAXIE_LEAVE, SootopolisCity_EventScript_1E61B8 msgbox SootopolisCity_Text_1E78E5, MSGBOX_DEFAULT @@ -1263,7 +1263,7 @@ SootopolisCity_EventScript_1E635D:: @ 81E635D lockall applymovement 15, Common_Movement_FacePlayer waitmovement 0 - compare VAR_RAYQUAZA_STATE, 5 + compare VAR_SOOTOPOLIS_CITY_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E6388 msgbox SootopolisCity_Text_1E67DC, MSGBOX_DEFAULT closemessage @@ -1280,7 +1280,7 @@ SootopolisCity_EventScript_1E6388:: @ 81E6388 SootopolisCity_EventScript_1E6393:: @ 81E6393 lockall - compare VAR_RAYQUAZA_STATE, 5 + compare VAR_SOOTOPOLIS_CITY_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E63C7 msgbox SootopolisCity_Text_1E6936, MSGBOX_DEFAULT closemessage @@ -1304,7 +1304,7 @@ SootopolisCity_EventScript_1E63DB:: @ 81E63DB lockall applymovement 13, Common_Movement_FacePlayer waitmovement 0 - compare VAR_RAYQUAZA_STATE, 5 + compare VAR_SOOTOPOLIS_CITY_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E6406 msgbox SootopolisCity_Text_1E6C7C, MSGBOX_DEFAULT closemessage @@ -1323,7 +1323,7 @@ SootopolisCity_EventScript_1E6411:: @ 81E6411 lockall applymovement 12, Common_Movement_FacePlayer waitmovement 0 - compare VAR_RAYQUAZA_STATE, 5 + compare VAR_SOOTOPOLIS_CITY_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E643C msgbox SootopolisCity_Text_1E6A50, MSGBOX_DEFAULT closemessage @@ -1340,7 +1340,7 @@ SootopolisCity_EventScript_1E643C:: @ 81E643C SootopolisCity_EventScript_1E6446:: @ 81E6446 lock faceplayer - compare VAR_RAYQUAZA_STATE, 4 + compare VAR_SOOTOPOLIS_CITY_STATE, 4 goto_if_eq SootopolisCity_EventScript_1E64D8 goto_if_set FLAG_RECEIVED_HM07, SootopolisCity_EventScript_1E64E2 goto_if_set FLAG_SOOTOPOLIS_ARCHIE_MAXIE_LEAVE, SootopolisCity_EventScript_1E646F @@ -1367,14 +1367,14 @@ SootopolisCity_EventScript_1E64B2:: @ 81E64B2 applymovement 18, SootopolisCity_Movement_1E64EC waitmovement 0 moveobjectoffscreen 18 - setvar VAR_SOOTOPOLIS_STATE, 1 + setvar VAR_SOOTOPOLIS_WALLACE_STATE, 1 return SootopolisCity_EventScript_1E64C5:: @ 81E64C5 applymovement 18, SootopolisCity_Movement_1E64EF waitmovement 0 moveobjectoffscreen 18 - setvar VAR_SOOTOPOLIS_STATE, 2 + setvar VAR_SOOTOPOLIS_WALLACE_STATE, 2 return SootopolisCity_EventScript_1E64D8:: @ 81E64D8 @@ -1399,7 +1399,7 @@ SootopolisCity_Movement_1E64EF: @ 81E64EF SootopolisCity_EventScript_1E64F2:: @ 81E64F2 lockall - compare VAR_RAYQUAZA_STATE, 5 + compare VAR_SOOTOPOLIS_CITY_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E6509 msgbox SootopolisCity_Text_1E72DB, MSGBOX_DEFAULT closemessage @@ -1415,7 +1415,7 @@ SootopolisCity_EventScript_1E6509:: @ 81E6509 SootopolisCity_EventScript_1E651F:: @ 81E651F lockall - compare VAR_RAYQUAZA_STATE, 5 + compare VAR_SOOTOPOLIS_CITY_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E6536 msgbox SootopolisCity_Text_1E7460, MSGBOX_DEFAULT closemessage diff --git a/data/maps/SootopolisCity_Gym_1F/scripts.inc b/data/maps/SootopolisCity_Gym_1F/scripts.inc index 2991cc4824..99b9fb2baf 100644 --- a/data/maps/SootopolisCity_Gym_1F/scripts.inc +++ b/data/maps/SootopolisCity_Gym_1F/scripts.inc @@ -106,7 +106,7 @@ SootopolisCity_Gym_1F_EventScript_224F82:: @ 8224F82 setflag FLAG_HIDE_SOOTOPOLIS_CITY_RESIDENTS setflag FLAG_HIDE_SOOTOPOLIS_CITY_STEVEN setflag FLAG_HIDE_SOOTOPOLIS_CITY_WALLACE - setvar VAR_RAYQUAZA_STATE, 6 + setvar VAR_SOOTOPOLIS_CITY_STATE, 6 clearflag FLAG_HIDE_SOOTOPOLIS_CITY_MAN_1 setvar VAR_0x8008, 8 call SootopolisCity_Gym_1F_EventScript_271F43 diff --git a/include/bg.h b/include/bg.h index ad5acd0ae9..3c7eee2927 100644 --- a/include/bg.h +++ b/include/bg.h @@ -27,13 +27,13 @@ enum struct BgTemplate { - u32 bg:2; // 0x1, 0x2 -> 0x3 - u32 charBaseIndex:2; // 0x4, 0x8 -> 0xC - u32 mapBaseIndex:5; // 0x10, 0x20, 0x40, 0x80, 0x100 -> 0x1F0 - u32 screenSize:2; // 0x200, 0x400 -> 0x600 - u32 paletteMode:1; // 0x800 - u32 priority:2; // 0x1000, 0x2000 > 0x3000 - u32 baseTile:10; + u16 bg:2; // 0x1, 0x2 -> 0x3 + u16 charBaseIndex:2; // 0x4, 0x8 -> 0xC + u16 mapBaseIndex:5; // 0x10, 0x20, 0x40, 0x80, 0x100 -> 0x1F0 + u16 screenSize:2; // 0x200, 0x400 -> 0x600 + u16 paletteMode:1; // 0x800 + u16 priority:2; // 0x1000, 0x2000 > 0x3000 + u16 baseTile:10; }; void ResetBgs(void); diff --git a/include/constants/vars.h b/include/constants/vars.h index 6fd1c16dd0..6b213c8cc5 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -94,56 +94,56 @@ #define VAR_POKELOT_PRIZE_PLACE 0x404D #define VAR_UNUSED_0x404E 0x404E // Unused Var #define VAR_LOTAD_SIZE_RECORD 0x404F -#define VAR_0x4050 0x4050 -#define VAR_ROUTE102_ACCESSIBLE 0x4051 -#define VAR_UNUSED_0x4052 0x4052 // Unused Var -#define VAR_LAVARIDGE_RIVAL_STATE 0x4053 -#define VAR_CURRENT_SECRET_BASE 0x4054 -#define VAR_UNUSED_0x4055 0x4055 // Unused Var -#define VAR_UNUSED_0x4056 0x4056 // Unused Var -#define VAR_PETALBURG_STATE 0x4057 -#define VAR_SLATEPORT_STATE 0x4058 -#define VAR_UNUSED_0x4059 0x4059 // Unused Var -#define VAR_RUSTBORO_STATE 0x405A -#define VAR_UNUSED_0x405B 0x405B // Unused Var -#define VAR_UNUSED_0x405C 0x405C // Unused Var -#define VAR_MOSSDEEP_STATE 0x405D -#define VAR_RAYQUAZA_STATE 0x405E -#define VAR_UNUSED_0x405F 0x405F // Unused Var +#define VAR_LITTLEROOT_TOWN_STATE 0x4050 +#define VAR_OLDALE_TOWN_STATE 0x4051 +#define VAR_DEWFORD_TOWN_STATE 0x4052 // Unused Var +#define VAR_LAVARIDGE_TOWN_STATE 0x4053 +#define VAR_CURRENT_SECRET_BASE 0x4054 // was probably allocated for VAR_FALLARBOR_TOWN_STATE at one point +#define VAR_VERDANTURF_TOWN_STATE 0x4055 // Unused Var +#define VAR_PACIFIDLOG_TOWN_STATE 0x4056 // Unused Var +#define VAR_PETALBURG_CITY_STATE 0x4057 +#define VAR_SLATEPORT_CITY_STATE 0x4058 +#define VAR_MAUVILLE_CITY_STATE 0x4059 // Unused Var +#define VAR_RUSTBORO_CITY_STATE 0x405A +#define VAR_FORTREE_CITY_STATE 0x405B // Unused Var +#define VAR_LILYCOVE_CITY_STATE 0x405C // Unused Var +#define VAR_MOSSDEEP_CITY_STATE 0x405D +#define VAR_SOOTOPOLIS_CITY_STATE 0x405E +#define VAR_EVER_GRANDE_CITY_STATE 0x405F // Unused Var #define VAR_ROUTE101_STATE 0x4060 -#define VAR_UNUSED_0x4061 0x4061 // Unused Var -#define VAR_UNUSED_0x4062 0x4062 // Unused Var -#define VAR_0x4063 0x4063 -#define VAR_UNUSED_0x4064 0x4064 // Unused Var -#define VAR_UNUSED_0x4065 0x4065 // Unused Var -#define VAR_UNUSED_0x4066 0x4066 // Unused Var -#define VAR_UNUSED_0x4067 0x4067 // Unused Var -#define VAR_UNUSED_0x4068 0x4068 // Unused Var +#define VAR_ROUTE102_STATE 0x4061 // Unused Var +#define VAR_ROUTE103_STATE 0x4062 // Unused Var +#define VAR_ROUTE104_STATE 0x4063 +#define VAR_ROUTE105_STATE 0x4064 // Unused Var +#define VAR_ROUTE106_STATE 0x4065 // Unused Var +#define VAR_ROUTE107_STATE 0x4066 // Unused Var +#define VAR_ROUTE108_STATE 0x4067 // Unused Var +#define VAR_ROUTE109_STATE 0x4068 // Unused Var #define VAR_ROUTE110_STATE 0x4069 -#define VAR_UNUSED_0x406A 0x406A // Unused Var -#define VAR_UNUSED_0x406B 0x406B // Unused Var -#define VAR_UNUSED_0x406C 0x406C // Unused Var -#define VAR_UNUSED_0x406D 0x406D // Unused Var -#define VAR_UNUSED_0x406E 0x406E // Unused Var +#define VAR_ROUTE111_STATE 0x406A // Unused Var +#define VAR_ROUTE112_STATE 0x406B // Unused Var +#define VAR_ROUTE113_STATE 0x406C // Unused Var +#define VAR_ROUTE114_STATE 0x406D // Unused Var +#define VAR_ROUTE115_STATE 0x406E // Unused Var #define VAR_ROUTE116_STATE 0x406F -#define VAR_UNUSED_0x4070 0x4070 // Unused Var +#define VAR_ROUTE117_STATE 0x4070 // Unused Var #define VAR_ROUTE118_STATE 0x4071 #define VAR_ROUTE119_STATE 0x4072 -#define VAR_UNUSED_0x4073 0x4073 // Unused Var +#define VAR_ROUTE120_STATE 0x4073 // Unused Var #define VAR_ROUTE121_STATE 0x4074 -#define VAR_UNUSED_0x4075 0x4075 // Unused Var -#define VAR_UNUSED_0x4076 0x4076 // Unused Var -#define VAR_UNUSED_0x4077 0x4077 // Unused Var -#define VAR_UNUSED_0x4078 0x4078 // Unused Var -#define VAR_UNUSED_0x4079 0x4079 // Unused Var -#define VAR_UNUSED_0x407A 0x407A // Unused Var +#define VAR_ROUTE122_STATE 0x4075 // Unused Var +#define VAR_ROUTE123_STATE 0x4076 // Unused Var +#define VAR_ROUTE124_STATE 0x4077 // Unused Var +#define VAR_ROUTE125_STATE 0x4078 // Unused Var +#define VAR_ROUTE126_STATE 0x4079 // Unused Var +#define VAR_ROUTE127_STATE 0x407A // Unused Var #define VAR_ROUTE128_STATE 0x407B -#define VAR_UNUSED_0x407C 0x407C // Unused Var -#define VAR_UNUSED_0x407D 0x407D // Unused Var -#define VAR_UNUSED_0x407E 0x407E // Unused Var -#define VAR_UNUSED_0x407F 0x407F // Unused Var -#define VAR_UNUSED_0x4080 0x4080 // Unused Var -#define VAR_UNUSED_0x4081 0x4081 // Unused Var +#define VAR_ROUTE129_STATE 0x407C // Unused Var +#define VAR_ROUTE130_STATE 0x407D // Unused Var +#define VAR_ROUTE131_STATE 0x407E // Unused Var +#define VAR_ROUTE132_STATE 0x407F // Unused Var +#define VAR_ROUTE133_STATE 0x4080 // Unused Var +#define VAR_ROUTE134_STATE 0x4081 // Unused Var #define VAR_LITTLEROOT_HOUSES_STATE 0x4082 #define VAR_UNUSED_0x4083 0x4083 // Unused Var #define VAR_BIRCH_LAB_STATE 0x4084 @@ -156,7 +156,7 @@ #define VAR_UNUSED_0x408B 0x408B // Unused Var #define VAR_LITTLEROOT_HOUSES_STATE_2 0x408C #define VAR_LITTLEROOT_RIVAL_STATE 0x408D -#define VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE 0x408E +#define VAR_BOARD_BRINEY_BOAT_STATE 0x408E #define VAR_DEVON_CORP_3F_STATE 0x408F #define VAR_BRINEY_HOUSE_STATE 0x4090 #define VAR_UNUSED_0x4091 0x4091 // Unused Var @@ -165,7 +165,7 @@ #define VAR_LILYCOVE_MUSEUM_2F_STATE 0x4094 #define VAR_LILYCOVE_FAN_CLUB_STATE 0x4095 #define VAR_BRINEY_LOCATION 0x4096 -#define VAR_INIT_SECRET_BASE 0x4097 +#define VAR_INIT_SECRET_BASE 0x4097 #define VAR_PETALBURG_WOODS_STATE 0x4098 #define VAR_LILYCOVE_CONTEST_LOBBY_STATE 0x4099 #define VAR_RUSTURF_TUNNEL_STATE 0x409A @@ -213,11 +213,11 @@ #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_OLDALE_RIVAL_STATE 0x40C7 #define VAR_JAGGED_PASS_STATE 0x40C8 #define VAR_SCOTT_PETALBURG_ENCOUNTER 0x40C9 #define VAR_SKY_PILLAR_STATE 0x40CA -#define VAR_ROUTE_111_STATE 0x40CB +#define VAR_MIRAGE_TOWER_STATE 0x40CB #define VAR_FOSSIL_MANIAC_STATE 0x40CC #define VAR_CABLE_CLUB_TUTORIAL_STATE 0x40CD #define VAR_FRONTIER_BATTLE_MODE 0x40CE @@ -225,14 +225,14 @@ #define VAR_HAS_ENTERED_BATTLE_FRONTIER 0x40D0 // Var is used like a flag. #define VAR_SCOTT_STATE 0x40D1 #define VAR_SLATEPORT_OUTSIDE_MUSEUM_STATE 0x40D2 -#define VAR_0x40D3 0x40D3 +#define VAR_DEX_UPGRADE_JOHTO_STARTER_STATE 0x40D3 #define VAR_SS_TIDAL_SCOTT_STATE 0x40D4 // Always equal to FLAG_MET_SCOTT_ON_SS_TIDAL #define VAR_ROAMER_POKEMON 0x40D5 // 0 = Latias, 1 = Latios #define VAR_TRAINER_HILL_IS_ACTIVE 0x40D6 #define VAR_SKY_PILLAR_RAQUAZA_CRY_DONE 0x40D7 -#define VAR_SOOTOPOLIS_STATE 0x40D8 +#define VAR_SOOTOPOLIS_WALLACE_STATE 0x40D8 #define VAR_HAS_TALKED_TO_SEAFLOOR_CAVERN_ENTRANCE_GRUNT 0x40D9 -#define VAR_0x40DA 0x40DA +#define VAR_REGISTER_BIRCH_STATE 0x40DA #define VAR_UNUSED_0x40DB 0x40DB // Unused Var #define VAR_UNUSED_0x40DC 0x40DC // Unused Var #define VAR_EVENT_PICHU_SLOT 0x40DD diff --git a/include/global.h b/include/global.h index e1acc154c5..fa402b1dac 100644 --- a/include/global.h +++ b/include/global.h @@ -19,16 +19,23 @@ #if defined (__APPLE__) || defined (__CYGWIN__) || defined (_MSC_VER) #define _(x) x #define __(x) x -#define INCBIN_U8 {0} -#define INCBIN_U16 {0} -#define INCBIN_U32 {0} -#define INCBIN_S8 {0} -#define INCBIN_S16 {0} -#define INCBIN_S32 {0} + +// Fool CLion IDE +#define INCBIN(x) {0} +#define INCBIN_U8 INCBIN +#define INCBIN_U16 INCBIN +#define INCBIN_U32 INCBIN +#define INCBIN_S8 INCBIN +#define INCBIN_S16 INCBIN +#define INCBIN_S32 INCBIN #endif // IDE support #define ARRAY_COUNT(array) (size_t)(sizeof(array) / sizeof((array)[0])) +// GameFreak used a macro called "NELEMS", as evidenced by +// AgbAssert calls. +#define NELEMS(arr) (sizeof(arr)/sizeof(*(arr))) + #define SWAP(a, b, temp) \ { \ temp = a; \ diff --git a/include/graphics.h b/include/graphics.h index d6da5cb10c..28e6c13506 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4732,6 +4732,20 @@ extern const u32 gBattleAnimSpritePal_PowerGem[]; extern const u32 gBattleAnimSpritePal_StoneEdge[]; extern const u32 gBattleAnimSpritePal_StealthRock[]; extern const u32 gBattleAnimSpritePal_PoisonJab[]; +// New Battle Anim Particles +extern const u32 gBattleAnimSpriteGfx_WhiteStreak[]; +extern const u32 gBattleAnimSpritePal_WhiteStreak[]; +extern const u32 gBattleAnimSpriteGfx_PurpleJab[]; +extern const u32 gBattleAnimSpritePal_PurpleJab[]; +extern const u32 gBattleAnimSpritePal_ToxicSpikes[]; +extern const u32 gBattleAnimSpriteGfx_EnergyBall[]; +extern const u32 gBattleAnimSpritePal_EnergyBall[]; +extern const u32 gBattleAnimSpriteGfx_MegaStone[]; +extern const u32 gBattleAnimSpritePal_MegaStone[]; +extern const u32 gBattleAnimSpriteGfx_MegaParticles[]; +extern const u32 gBattleAnimSpritePal_MegaParticles[]; +extern const u32 gBattleAnimSpriteGfx_MegaSymbol[]; +extern const u32 gBattleAnimSpritePal_MegaSymbol[]; extern const u32 gBattleAnimBgImage_Dark[]; extern const u32 gBattleAnimBgImage_Ghost[]; @@ -4993,19 +5007,11 @@ extern const u16 gUsePokeblockCondition_Pal[]; extern const u32 gUnknown_08DE34B8[]; extern const u16 gUnknown_08DE3398[]; -// New Battle Anim Particles -extern const u32 gBattleAnimSpriteGfx_WhiteStreak[]; -extern const u32 gBattleAnimSpritePal_WhiteStreak[]; -extern const u32 gBattleAnimSpriteGfx_PurpleJab[]; -extern const u32 gBattleAnimSpritePal_PurpleJab[]; -extern const u32 gBattleAnimSpritePal_ToxicSpikes[]; -extern const u32 gBattleAnimSpriteGfx_EnergyBall[]; -extern const u32 gBattleAnimSpritePal_EnergyBall[]; -extern const u32 gBattleAnimSpriteGfx_MegaStone[]; -extern const u32 gBattleAnimSpritePal_MegaStone[]; -extern const u32 gBattleAnimSpriteGfx_MegaParticles[]; -extern const u32 gBattleAnimSpritePal_MegaParticles[]; -extern const u32 gBattleAnimSpriteGfx_MegaSymbol[]; -extern const u32 gBattleAnimSpritePal_MegaSymbol[]; +// Pokenav +extern const u32 gPokenavMessageBox_Gfx[]; +extern const u32 gPokenavMessageBox_Tilemap[]; +extern const u16 gPokenavMessageBox_Pal[]; +extern const u32 gPokenavOptions_Gfx[]; +extern const u16 gPokenavOptions_Pal[]; #endif //GUARD_GRAPHICS_H diff --git a/include/pokenav.h b/include/pokenav.h index 380e61dda8..db32e3029b 100644 --- a/include/pokenav.h +++ b/include/pokenav.h @@ -7,16 +7,18 @@ typedef u32 (*LoopedTask)(s32 state); +struct PokenavMonList +{ + u8 boxId; + u8 monId; + u16 unk6; +}; + struct PokenavSub18 { u16 unk0; u16 unk2; - struct PokenavMonList - { - u8 boxId; - u8 monId; - u16 unk6; - } unk4[TOTAL_BOXES_COUNT * IN_BOX_COUNT + PARTY_SIZE]; + struct PokenavMonList unk4[TOTAL_BOXES_COUNT * IN_BOX_COUNT + PARTY_SIZE]; }; // Return values of LoopedTask functions. @@ -75,7 +77,7 @@ void SetVBlankCallback_(IntrCallback callback); // pokenav_match_call_ui.c struct MatchCallListTemplate { - u32 unk0; + struct PokenavMonList * unk0; u16 unk4; u16 unk6; u8 unk8; @@ -85,9 +87,10 @@ struct MatchCallListTemplate u8 unkC; u8 unkD; u8 unkE; - void (*unk10)(u32, u8 *a1); + void (*unk10)(struct PokenavMonList *, u8 *a1); void (*unk14)(u16 a0, u32 a1, u32 a2); }; + u32 GetSelectedMatchCall(void); bool32 sub_81C8224(void); int MatchCall_MoveCursorUp(void); @@ -138,44 +141,51 @@ void sub_81C7B40(void); struct Sprite *PauseSpinningPokenavSprite(void); void ResumeSpinningPokenavSprite(void); void sub_81C7E14(u32 arg0); +void sub_81C7FC4(u32 arg0, bool32 arg1); +void sub_81C7880(void); void sub_81C7990(u32 a0, u16 a1); +u32 PokenavMainMenuLoopedTaskIsActive(void); +bool32 WaitForPokenavShutdownFade(void); +void sub_81C7834(void *func1, void *func2); +void ShutdownPokenav(void); // pokenav_unk_1.c -bool32 sub_81C9298(void); -bool32 sub_81C92CC(void); -bool32 sub_81C9304(void); -bool32 sub_81C9338(void); -bool32 sub_81C9368(void); +bool32 PokenavCallback_Init_0(void); +bool32 PokenavCallback_Init_4(void); +bool32 PokenavCallback_Init_5(void); +bool32 PokenavCallback_Init_2(void); +bool32 PokenavCallback_Init_3(void); u32 sub_81C941C(void); void sub_81C9430(void); int sub_81C9894(void); const u8 *sub_81CAF78(int index, u8 *arg1); +int sub_81C98A4(void); +int sub_81C98B4(void); +u16 sub_81C98C4(void); // pokenav_unk_2.c +bool32 sub_81C9924(void); +bool32 sub_81C9940(void); +void sub_81C9990(s32 ltIdx); +bool32 sub_81C99C0(void); void sub_81C99D4(void); void sub_81CAADC(void); // pokenav_unk_3.c -struct Pokenav3Struct_Unk1C -{ - u8 unk0; - u8 unk1; - u16 unk2; -}; -bool32 sub_81CAAE8(void); +bool32 PokenavCallback_Init_11(void); u32 sub_81CAB24(void); void sub_81CAB38(void); int sub_81CAE28(void); int sub_81CAE38(void); int sub_81CAE48(void); -struct Pokenav3Struct_Unk1C *sub_81CAE94(void); +struct PokenavMonList *sub_81CAE94(void); u16 sub_81CAEA4(int); bool32 sub_81CAEBC(int index); int sub_81CAF04(int index); const u8 *sub_81CAFD8(int index, int textType); u16 sub_81CB01C(void); u16 sub_81CB02C(int arg0); -void sub_81CB050(u32 arg0, u8 *str); +void sub_81CB050(struct PokenavMonList * arg0, u8 *str); u8 sub_81CB0C8(int rematchIndex); int sub_81CB0E4(int index); bool32 sub_81CAE08(int); @@ -183,21 +193,25 @@ int sub_81CB128(int index); // pokenav_unk_4.c bool32 sub_81CB260(void); -void sub_81CB29C(int index); +void sub_81CB29C(s32 index); u32 sub_81CB2CC(void); void sub_81CB2E0(void); void sub_81CBD48(u16 windowId, u32 a1); // pokenav_unk_5.c -u32 sub_81CC4D4(void); +u32 PokenavCallback_Init_6(void); void sub_81CC524(void); u32 sub_81CC554(void); bool32 sub_81CC5F4(void); -void sub_81CC62C(int); +void sub_81CC62C(s32); u32 sub_81CC65C(void); void sub_81CC670(void); // pokenav_unk_6.c +u32 PokenavCallback_Init_7(void); +u32 PokenavCallback_Init_9(void); +u32 sub_81CD070(void); +void sub_81CD1C0(void); bool32 sub_81CD3C4(void); bool32 sub_81CDD5C(void); struct UnknownStruct_81D1ED4 *sub_81CDC70(void); @@ -213,6 +227,41 @@ void *sub_81CDCB4(u8 id); void *sub_81CDCD4(u8 id); // pokenav_unk_7.c +bool32 sub_81CDDD4(void); +void sub_81CDE2C(s32); +u32 sub_81CDE64(void); +void sub_81CECA0(void); u8 sub_81CEF14(void); +// pokenav_unk_8.c +u32 PokenavCallback_Init_8(void); +u32 PokenavCallback_Init_10(void); +u32 sub_81CEFDC(void); +void sub_81CEFF0(void); +bool32 sub_81CF330(void); +bool32 sub_81CF368(void); +void sub_81CF3A0(s32); +u32 sub_81CF3D0(void); +void sub_81CF3F8(void); + +// pokenav_unk_9.c +u32 PokenavCallback_Init_12(void); +u32 PokenavCallback_Init_14(void); +u32 sub_81CFA34(void); +void sub_81CFA48(void); +bool32 sub_81CFDD0(void); +bool32 sub_81CFE08(void); +void sub_81CFE40(s32); +u32 sub_81CFE70(void); +void sub_81CFE98(void); + +// pokenav_unk_10.c +u32 PokenavCallback_Init_13(void); +u32 sub_81D04A0(void); +void sub_81D04B8(void); +bool32 sub_81D0978(void); +void sub_81D09B0(s32); +u32 sub_81D09E0(void); +void sub_81D09F4(void); + #endif // GUARD_POKENAV_H diff --git a/include/strings.h b/include/strings.h index 97285b0510..7e7fcd322e 100644 --- a/include/strings.h +++ b/include/strings.h @@ -2766,12 +2766,16 @@ extern const u8 gUnknown_085EBE06[]; extern const u8 gUnknown_085EBE19[]; extern const u8 gUnknown_085EBE2D[]; extern const u8 gUnknown_085EBE41[]; +extern const u8 gText_NoRibbonWinners[]; // pokenav_unk_4 extern const u8 gUnknown_085EC017[]; extern const u8 gUnknown_085EC01C[]; extern const u8 gUnknown_085EC022[]; +// pokenav_unk_8 +extern const u8 gText_NumberF700[]; + // pokenav_unk_10 extern const u8 gText_RibbonsF700[]; diff --git a/include/trainer_hill.h b/include/trainer_hill.h index ad2713316a..e605ac6545 100644 --- a/include/trainer_hill.h +++ b/include/trainer_hill.h @@ -24,7 +24,7 @@ const struct WarpEvent* sub_81D6134(u8 warpEventId); u16 LocalIdToHillTrainerId(u8 localId); bool8 GetHillTrainerFlag(u8 eventObjectId); void SetHillTrainerFlag(void); -const u8 *sub_81D62AC(void); +const u8 *GetTrainerHillTrainerScript(void); void FillHillTrainerParty(void); void FillHillTrainersParties(void); u32 sub_81D63C4(void); diff --git a/ld_script.txt b/ld_script.txt index 624280f6eb..c0fff0887c 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -47,292 +47,290 @@ SECTIONS { .text : ALIGN(4) { - asm/crt0.o(.text*); - src/main.o(.text*); - src/alloc.o(.text*); - src/dma3_manager.o(.text*); - src/gpu_regs.o(.text*); - src/bg.o(.text*); - src/blit.o(.text*); - src/window.o(.text*); - src/text.o(.text*); - src/sprite.o(.text*); - src/string_util.o(.text*); - src/link.o(.text*); - src/link_rfu.o(.text*); - src/union_room.o(.text*); - src/mystery_gift.o(.text*); - src/union_room_player_avatar.o(.text*); - src/union_room_battle.o(.text*); - src/mevent2.o(.text*); - src/mevent_801BAAC.o(.text*); - src/mevent_server.o(.text*); - src/mevent_client.o(.text*); - src/mevent_server_helpers.o(.text*); - src/mevent_news.o(.text*); - src/union_room_chat.o(.text*); - src/berry_crush.o(.text*); - asm/berry_crush.o(.text*); - src/berry_powder.o(.text*); - src/dodrio_berry_picking.o(.text*); - src/pokemon_jump.o(.text*); - src/rtc.o(.text*); - src/main_menu.o(.text*); - src/battle_controllers.o(.text*); - src/decompress.o(.text*); - src/rom_8034C54.o(.text*); - src/battle_bg.o(.text*); - src/battle_main.o(.text*); - src/battle_util.o(.text*); - src/battle_script_commands.o(.text*); - src/battle_util2.o(.text*); - src/battle_controller_player.o(.text*); - src/battle_gfx_sfx_util.o(.text*); - src/battle_controller_opponent.o(.text*); - src/battle_ai_switch_items.o(.text*); - src/battle_controller_link_opponent.o(.text*); - src/pokemon.o(.text*); - src/trig.o(.text*); - src/random.o(.text*); - src/util.o(.text*); - src/daycare.o(.text*); - src/egg_hatch.o(.text*); - src/battle_interface.o(.text*); - src/smokescreen.o(.text*); - src/pokeball.o(.text*); - src/load_save.o(.text*); - src/trade.o(.text*); - src/berry_blender.o(.text*); - src/play_time.o(.text*); - src/new_game.o(.text*); - src/overworld.o(.text*); - src/fieldmap.o(.text*); - src/metatile_behavior.o(.text*); - src/field_camera.o(.text*); - src/field_door.o(.text*); - src/field_player_avatar.o(.text*); - src/event_object_movement.o(.text*); - src/field_message_box.o(.text*); - src/event_obj_lock.o(.text*); - src/text_window.o(.text*); - src/script.o(.text*); - src/scrcmd.o(.text*); - src/field_control_avatar.o(.text*); - src/event_data.o(.text*); - src/coord_event_weather.o(.text*); - src/field_tasks.o(.text*); - src/clock.o(.text*); - src/reset_rtc_screen.o(.text*); - src/start_menu.o(.text*); - src/tileset_anims.o(.text*); - src/palette.o(.text*); - src/sound.o(.text*); - src/battle_anim.o(.text*); - src/battle_anim_mons.o(.text*); - src/task.o(.text*); - src/reshow_battle_screen.o(.text*); - src/battle_anim_status_effects.o(.text*); - src/title_screen.o(.text*); - src/field_weather.o(.text*); - src/field_weather_effect.o(.text*); - src/field_screen_effect.o(.text*); - src/battle_setup.o(.text*); - src/cable_club.o(.text*); - src/trainer_see.o(.text*); - src/wild_encounter.o(.text*); - src/field_effect.o(.text*); - src/scanline_effect.o(.text*); - src/option_menu.o(.text*); - src/pokedex.o(.text*); - src/trainer_card.o(.text*); - src/frontier_pass.o(.text*); - src/pokemon_storage_system.o(.text*); - src/pokemon_icon.o(.text*); - src/script_movement.o(.text*); - src/fldeff_cut.o(.text*); - src/mail_data.o(.text*); - src/map_name_popup.o(.text*); - src/item_menu_icons.o(.text*); - src/battle_anim_mon_movement.o(.text*); - src/item.o(.text*); - src/contest.o(.text*); - src/shop.o(.text*); - src/fldeff_escalator.o(.text*); - src/berry.o(.text*); - src/script_menu.o(.text*); - src/naming_screen.o(.text*); - src/money.o(.text*); - src/contest_effect.o(.text*); - src/record_mixing.o(.text*); - src/secret_base.o(.text*); - src/tv.o(.text*); - src/contest_link_80F57C4.o(.text*); - src/script_pokemon_util_80F87D8.o(.text*); - src/field_poison.o(.text*); - src/pokemon_size_record.o(.text*); - src/fldeff_misc.o(.text*); - src/field_special_scene.o(.text*); - src/rotating_gate.o(.text*); - src/safari_zone.o(.text*); - src/contest_link_80FC4F4.o(.text*); - src/item_use.o(.text*); - src/battle_anim_effects_1.o(.text*); - src/battle_anim_effects_2.o(.text*); - src/water.o(.text*); - src/fire.o(.text*); - src/electric.o(.text*); - src/ice.o(.text*); - src/fight.o(.text*); - src/poison.o(.text*); - src/flying.o(.text*); - src/psychic.o(.text*); - src/bug.o(.text*); - src/rock.o(.text*); - src/ghost.o(.text*); - src/dragon.o(.text*); - src/dark.o(.text*); - src/ground.o(.text*); - src/normal.o(.text*); - src/battle_anim_utility_funcs.o(.text*); - src/battle_intro.o(.text*); - src/bike.o(.text*); - src/easy_chat.o(.text*); - src/mon_markings.o(.text*); - src/mauville_old_man.o(.text*); - src/mail.o(.text*); - src/menu_helpers.o(.text*); - src/dewford_trend.o(.text*); - src/heal_location.o(.text*); - src/region_map.o(.text*); - src/contest_painting_effects.o(.text*); - src/decoration.o(.text*); - src/slot_machine.o(.text*); - src/contest_painting.o(.text*); - src/battle_ai_script_commands.o(.text*); - src/trader.o(.text*); - src/starter_choose.o(.text*); - src/wallclock.o(.text*); - src/fldeff_rocksmash.o(.text*); - src/fldeff_dig.o(.text*); - src/pokeblock.o(.text*); - src/fldeff_flash.o(.text*); - src/post_battle_event_funcs.o(.text*); - src/time_events.o(.text*); - src/birch_pc.o(.text*); - src/hof_pc.o(.text*); - src/field_specials.o(.text*); - src/battle_records.o(.text*); - src/pokedex_area_screen.o(.text*); - src/evolution_scene.o(.text*); - src/roulette.o(.text*); - src/pokedex_cry_screen.o(.text*); - src/coins.o(.text*); - src/landmark.o(.text*); - src/fldeff_strength.o(.text*); - src/battle_transition.o(.text*); - src/battle_controller_link_partner.o(.text*); - src/battle_message.o(.text*); - src/cable_car.o(.text*); - src/math_util.o(.text*); - src/roulette_util.o(.text*); - src/rom_81520A8.o(.text*); - src/save.o(.text*); - src/mystery_event_script.o(.text*); - src/field_effect_helpers.o(.text*); - src/contest_ai.o(.text*); - src/battle_anim_sound_tasks.o(.text*); - src/battle_controller_safari.o(.text*); - src/fldeff_sweetscent.o(.text*); - src/battle_anim_effects_3.o(.text*); - src/move_relearner.o(.text*); - src/fldeff_softboiled.o(.text*); - src/decoration_inventory.o(.text*); - src/roamer.o(.text*); - src/battle_tower.o(.text*); - src/use_pokeblock.o(.text*); - src/battle_controller_wally.o(.text*); - src/player_pc.o(.text*); - src/intro.o(.text*); - src/reset_save_heap.o(.text*); - src/field_region_map.o(.text*); - src/battle_anim_special.o(.text*); - src/hall_of_fame.o(.text*); - src/credits.o(.text*); - src/lottery_corner.o(.text*); - src/diploma.o(.text*); - src/berry_tag_screen.o(.text*); - src/mystery_event_menu.o(.text*); - src/save_failed_screen.o(.text*); - src/braille_puzzles.o(.text*); - src/pokeblock_feed.o(.text*); - src/clear_save_data_screen.o(.text*); - src/intro_credits_graphics.o(.text*); - src/evolution_graphics.o(.text*); - src/bard_music.o(.text*); - src/fldeff_teleport.o(.text*); - src/battle_tv.o(.text*); - src/pokemon_animation.o(.text*); - src/recorded_battle.o(.text*); - src/battle_controller_recorded_opponent.o(.text*); - src/battle_controller_recorded_player.o(.text*); - src/trainer_pokemon_sprites.o(.text*); - src/lilycove_lady.o(.text*); - src/battle_dome.o(.text*); - src/battle_palace.o(.text*); - src/match_call.o(.text*); - src/menu.o(.text*); - src/battle_factory_screen.o(.text*); - src/apprentice.o(.text*); - src/frontier_util.o(.text*); - src/battle_arena.o(.text*); - src/battle_factory.o(.text*); - src/battle_pike.o(.text*); - src/mossdeep_gym.o(.text*); - src/battle_pyramid.o(.text*); - src/item_menu.o(.text*); - src/list_menu.o(.text*); - src/dynamic_placeholder_text_util.o(.text*); - src/save_location.o(.text*); - src/item_icon.o(.text*); - src/party_menu.o(.text*); - src/battle_tent.o(.text*); - src/unk_text_util_2.o(.text*); - src/multiboot.o(.text*); - src/unk_81BAD84.o(.text*); - src/battle_controller_player_partner.o(.text*); - src/mirage_tower.o(.text*); - src/berry_fix_program.o(.text*); - src/pokemon_summary_screen.o(.text*); - src/unk_pokedex_area_screen_helper.o(.text*); - src/battle_pyramid_bag.o(.text*); - src/pokenav.o(.text*); - src/pokenav_main_menu.o(.text*); - src/pokenav_match_call_ui.o(.text*); - src/pokenav_unk_1.o(.text*); - src/pokenav_unk_2.o(.text*); - asm/pokenav_unk_2.o(.text*); - src/pokenav_unk_3.o(.text*); - src/pokenav_unk_4.o(.text*); - src/pokenav_unk_5.o(.text*); - src/pokenav_unk_6.o(.text*); - src/pokenav_unk_7.o(.text*); - src/pokenav_unk_8.o(.text*); - asm/pokenav_unk_8.o(.text*); - asm/pokenav_unk_9.o(.text*); - src/pokenav_unk_10.o(.text*); - src/pokenav_match_call_data.o(.text*); - src/menu_specialized.o(.text*); - src/ereader_helpers.o(.text*); - src/faraway_island.o(.text*); - src/ereader_screen.o(.text*); - src/trainer_hill.o(.text*); - src/rayquaza_scene.o(.text*); - src/walda_phrase.o(.text*); - src/contest_link_81D9DE4.o(.text*); - src/gym_leader_rematch.o(.text*); - src/unk_transition.o(.text*); - src/battle_debug.o(.text*); - src/international_string_util.o(.text*); + asm/crt0.o(.text); + src/main.o(.text); + src/alloc.o(.text); + src/dma3_manager.o(.text); + src/gpu_regs.o(.text); + src/bg.o(.text); + src/blit.o(.text); + src/window.o(.text); + src/text.o(.text); + src/sprite.o(.text); + src/string_util.o(.text); + src/link.o(.text); + src/link_rfu.o(.text); + src/union_room.o(.text); + src/mystery_gift.o(.text); + src/union_room_player_avatar.o(.text); + src/union_room_battle.o(.text); + src/mevent2.o(.text); + src/mevent_801BAAC.o(.text); + src/mevent_server.o(.text); + src/mevent_client.o(.text); + src/mevent_server_helpers.o(.text); + src/mevent_news.o(.text); + src/union_room_chat.o(.text); + src/berry_crush.o(.text); + asm/berry_crush.o(.text); + src/berry_powder.o(.text); + src/dodrio_berry_picking.o(.text); + src/pokemon_jump.o(.text); + src/rtc.o(.text); + src/main_menu.o(.text); + src/battle_controllers.o(.text); + src/decompress.o(.text); + src/rom_8034C54.o(.text); + src/battle_bg.o(.text); + src/battle_main.o(.text); + src/battle_util.o(.text); + src/battle_script_commands.o(.text); + src/battle_util2.o(.text); + src/battle_controller_player.o(.text); + src/battle_gfx_sfx_util.o(.text); + src/battle_controller_opponent.o(.text); + src/battle_ai_switch_items.o(.text); + src/battle_controller_link_opponent.o(.text); + src/battle_debug.o(.text); + src/pokemon.o(.text); + src/trig.o(.text); + src/random.o(.text); + src/util.o(.text); + src/daycare.o(.text); + src/egg_hatch.o(.text); + src/battle_interface.o(.text); + src/smokescreen.o(.text); + src/pokeball.o(.text); + src/load_save.o(.text); + src/trade.o(.text); + src/berry_blender.o(.text); + src/play_time.o(.text); + src/new_game.o(.text); + src/overworld.o(.text); + src/fieldmap.o(.text); + src/metatile_behavior.o(.text); + src/field_camera.o(.text); + src/field_door.o(.text); + src/field_player_avatar.o(.text); + src/event_object_movement.o(.text); + src/field_message_box.o(.text); + src/event_obj_lock.o(.text); + src/text_window.o(.text); + src/script.o(.text); + src/scrcmd.o(.text); + src/field_control_avatar.o(.text); + src/event_data.o(.text); + src/coord_event_weather.o(.text); + src/field_tasks.o(.text); + src/clock.o(.text); + src/reset_rtc_screen.o(.text); + src/start_menu.o(.text); + src/tileset_anims.o(.text); + src/palette.o(.text); + src/sound.o(.text); + src/battle_anim.o(.text); + src/battle_anim_mons.o(.text); + src/task.o(.text); + src/reshow_battle_screen.o(.text); + src/battle_anim_status_effects.o(.text); + src/title_screen.o(.text); + src/field_weather.o(.text); + src/field_weather_effect.o(.text); + src/field_screen_effect.o(.text); + src/battle_setup.o(.text); + src/cable_club.o(.text); + src/trainer_see.o(.text); + src/wild_encounter.o(.text); + src/field_effect.o(.text); + src/scanline_effect.o(.text); + src/option_menu.o(.text); + src/pokedex.o(.text); + src/trainer_card.o(.text); + src/frontier_pass.o(.text); + src/pokemon_storage_system.o(.text); + src/pokemon_icon.o(.text); + src/script_movement.o(.text); + src/fldeff_cut.o(.text); + src/mail_data.o(.text); + src/map_name_popup.o(.text); + src/item_menu_icons.o(.text); + src/battle_anim_mon_movement.o(.text); + src/item.o(.text); + src/contest.o(.text); + src/shop.o(.text); + src/fldeff_escalator.o(.text); + src/berry.o(.text); + src/script_menu.o(.text); + src/naming_screen.o(.text); + src/money.o(.text); + src/contest_effect.o(.text); + src/record_mixing.o(.text); + src/secret_base.o(.text); + src/tv.o(.text); + src/contest_link_80F57C4.o(.text); + src/script_pokemon_util_80F87D8.o(.text); + src/field_poison.o(.text); + src/pokemon_size_record.o(.text); + src/fldeff_misc.o(.text); + src/field_special_scene.o(.text); + src/rotating_gate.o(.text); + src/safari_zone.o(.text); + src/contest_link_80FC4F4.o(.text); + src/item_use.o(.text); + src/battle_anim_effects_1.o(.text); + src/battle_anim_effects_2.o(.text); + src/water.o(.text); + src/fire.o(.text); + src/electric.o(.text); + src/ice.o(.text); + src/fight.o(.text); + src/poison.o(.text); + src/flying.o(.text); + src/psychic.o(.text); + src/bug.o(.text); + src/rock.o(.text); + src/ghost.o(.text); + src/dragon.o(.text); + src/dark.o(.text); + src/ground.o(.text); + src/normal.o(.text); + src/battle_anim_utility_funcs.o(.text); + src/battle_intro.o(.text); + src/bike.o(.text); + src/easy_chat.o(.text); + src/mon_markings.o(.text); + src/mauville_old_man.o(.text); + src/mail.o(.text); + src/menu_helpers.o(.text); + src/dewford_trend.o(.text); + src/heal_location.o(.text); + src/region_map.o(.text); + src/contest_painting_effects.o(.text); + src/decoration.o(.text); + src/slot_machine.o(.text); + src/contest_painting.o(.text); + src/battle_ai_script_commands.o(.text); + src/trader.o(.text); + src/starter_choose.o(.text); + src/wallclock.o(.text); + src/fldeff_rocksmash.o(.text); + src/fldeff_dig.o(.text); + src/pokeblock.o(.text); + src/fldeff_flash.o(.text); + src/post_battle_event_funcs.o(.text); + src/time_events.o(.text); + src/birch_pc.o(.text); + src/hof_pc.o(.text); + src/field_specials.o(.text); + src/battle_records.o(.text); + src/pokedex_area_screen.o(.text); + src/evolution_scene.o(.text); + src/roulette.o(.text); + src/pokedex_cry_screen.o(.text); + src/coins.o(.text); + src/landmark.o(.text); + src/fldeff_strength.o(.text); + src/battle_transition.o(.text); + src/battle_controller_link_partner.o(.text); + src/battle_message.o(.text); + src/cable_car.o(.text); + src/math_util.o(.text); + src/roulette_util.o(.text); + src/rom_81520A8.o(.text); + src/save.o(.text); + src/mystery_event_script.o(.text); + src/field_effect_helpers.o(.text); + src/contest_ai.o(.text); + src/battle_anim_sound_tasks.o(.text); + src/battle_controller_safari.o(.text); + src/fldeff_sweetscent.o(.text); + src/battle_anim_effects_3.o(.text); + src/move_relearner.o(.text); + src/fldeff_softboiled.o(.text); + src/decoration_inventory.o(.text); + src/roamer.o(.text); + src/battle_tower.o(.text); + src/use_pokeblock.o(.text); + src/battle_controller_wally.o(.text); + src/player_pc.o(.text); + src/intro.o(.text); + src/reset_save_heap.o(.text); + src/field_region_map.o(.text); + src/battle_anim_special.o(.text); + src/hall_of_fame.o(.text); + src/credits.o(.text); + src/lottery_corner.o(.text); + src/diploma.o(.text); + src/berry_tag_screen.o(.text); + src/mystery_event_menu.o(.text); + src/save_failed_screen.o(.text); + src/braille_puzzles.o(.text); + src/pokeblock_feed.o(.text); + src/clear_save_data_screen.o(.text); + src/intro_credits_graphics.o(.text); + src/evolution_graphics.o(.text); + src/bard_music.o(.text); + src/fldeff_teleport.o(.text); + src/battle_tv.o(.text); + src/pokemon_animation.o(.text); + src/recorded_battle.o(.text); + src/battle_controller_recorded_opponent.o(.text); + src/battle_controller_recorded_player.o(.text); + src/trainer_pokemon_sprites.o(.text); + src/lilycove_lady.o(.text); + src/battle_dome.o(.text); + src/battle_palace.o(.text); + src/match_call.o(.text); + src/menu.o(.text); + src/battle_factory_screen.o(.text); + src/apprentice.o(.text); + src/frontier_util.o(.text); + src/battle_arena.o(.text); + src/battle_factory.o(.text); + src/battle_pike.o(.text); + src/mossdeep_gym.o(.text); + src/battle_pyramid.o(.text); + src/item_menu.o(.text); + src/list_menu.o(.text); + src/dynamic_placeholder_text_util.o(.text); + src/save_location.o(.text); + src/item_icon.o(.text); + src/party_menu.o(.text); + src/battle_tent.o(.text); + src/unk_text_util_2.o(.text); + src/multiboot.o(.text); + src/unk_81BAD84.o(.text); + src/battle_controller_player_partner.o(.text); + src/mirage_tower.o(.text); + src/berry_fix_program.o(.text); + src/pokemon_summary_screen.o(.text); + src/unk_pokedex_area_screen_helper.o(.text); + src/battle_pyramid_bag.o(.text); + src/pokenav.o(.text); + src/pokenav_main_menu.o(.text); + src/pokenav_match_call_ui.o(.text); + src/pokenav_unk_1.o(.text); + src/pokenav_unk_2.o(.text); + src/pokenav_unk_3.o(.text); + src/pokenav_unk_4.o(.text); + src/pokenav_unk_5.o(.text); + src/pokenav_unk_6.o(.text); + src/pokenav_unk_7.o(.text); + src/pokenav_unk_8.o(.text); + src/pokenav_unk_9.o(.text); + src/pokenav_unk_10.o(.text); + src/pokenav_match_call_data.o(.text); + src/menu_specialized.o(.text); + src/ereader_helpers.o(.text); + src/faraway_island.o(.text); + src/ereader_screen.o(.text); + src/trainer_hill.o(.text); + src/rayquaza_scene.o(.text); + src/walda_phrase.o(.text); + src/contest_link_81D9DE4.o(.text); + src/gym_leader_rematch.o(.text); + src/unk_transition.o(.text); + src/international_string_util.o(.text); } =0 script_data : @@ -351,71 +349,70 @@ SECTIONS { lib_text : ALIGN(4) { - asm/libgcnmultiboot.o(.text*); - asm/m4a_1.o(.text*); - src/m4a.o(.text*); - src/agb_flash.o(.text*); - src/agb_flash_1m.o(.text*); - src/agb_flash_mx.o(.text*); - src/siirtc.o(.text*); - src/librfu_stwi.o(.text*); - src/librfu_intr.o(.text*); - asm/librfu_intr.o(.text*); - src/librfu_rfu.o(.text*); - src/librfu.o(.text*); - asm/librfu.o(.text*); - asm/libagbsyscall.o(.text*); - *libgcc.a:_call_via_rX.o(.text*); - *libgcc.a:_divdi3.o(.text*); - *libgcc.a:_divsi3.o(.text*); - *libgcc.a:_dvmd_tls.o(.text*); - *libgcc.a:_fixunsdfsi.o(.text*); - *libgcc.a:_fixunssfsi.o(.text*); - *libgcc.a:_modsi3.o(.text*); - *libgcc.a:_muldi3.o(.text*); - *libgcc.a:_udivdi3.o(.text*); - *libgcc.a:_udivsi3.o(.text*); - *libgcc.a:_umodsi3.o(.text*); - *libgcc.a:dp-bit.o(.text*); - *libgcc.a:fp-bit.o(.text*); - *libgcc.a:_lshrdi3.o(.text*); - *libgcc.a:_negdi2.o(.text*); - *libc.a:memcpy.o(.text*); - *libc.a:memset.o(.text*); - *libc.a:strcmp.o(.text*); - *libc.a:strcpy.o(.text*); - *libc.a:vfprintf.o(.text*); - *libc.a:vsprintf.o(.text*); - *libc.a:fvwrite.o(.text*); - *libc.a:locale.o(.text*); - *libc.a:findfp.o(.text*); - *libc.a:fflush.o(.text*); - *libc.a:wsetup.o(.text*); - *libc.a:mbtowc_r.o(.text*); - *libc.a:s_isinf.o(.text*); - *libc.a:s_isnan.o(.text*); - *libc.a:memchr.o(.text*); - *libc.a:strlen.o(.text*); - *libc.a:dtoa.o(.text*); - *libc.a:memmove.o(.text*); - *libc.a:stdio.o(.text*); - *libc.a:mprec.o(.text*); - *libc.a:mallocr.o(.text*); - *libc.a:fwalk.o(.text*); - *libc.a:freer.o(.text*); - *libc.a:makebuf.o(.text*); - *libc.a:readr.o(.text*); - *libc.a:writer.o(.text*); - *libc.a:lseekr.o(.text*); - *libc.a:closer.o(.text*); - *libc.a:callocr.o(.text*); - *libc.a:sbrkr.o(.text*); - *libc.a:mlock.o(.text*); - *libc.a:fstatr.o(.text*); - *libc.a:libcfunc.o(.text*); - *libc.a:syscalls.o(.text*); - *libc.a:errno.o(.text*); - src/libisagbprn.o(.text*); + asm/libgcnmultiboot.o(.text); + asm/m4a_1.o(.text); + src/m4a.o(.text); + src/agb_flash.o(.text); + src/agb_flash_1m.o(.text); + src/agb_flash_mx.o(.text); + src/siirtc.o(.text); + src/librfu_stwi.o(.text); + src/librfu_intr.o(.text); + asm/librfu_intr.o(.text); + src/librfu_rfu.o(.text); + asm/librfu.o(.text); + asm/libagbsyscall.o(.text); + *libgcc.a:_call_via_rX.o(.text); + *libgcc.a:_divdi3.o(.text); + *libgcc.a:_divsi3.o(.text); + *libgcc.a:_dvmd_tls.o(.text); + *libgcc.a:_fixunsdfsi.o(.text); + *libgcc.a:_fixunssfsi.o(.text); + *libgcc.a:_modsi3.o(.text); + *libgcc.a:_muldi3.o(.text); + *libgcc.a:_udivdi3.o(.text); + *libgcc.a:_udivsi3.o(.text); + *libgcc.a:_umodsi3.o(.text); + *libgcc.a:dp-bit.o(.text); + *libgcc.a:fp-bit.o(.text); + *libgcc.a:_lshrdi3.o(.text); + *libgcc.a:_negdi2.o(.text); + *libc.a:memcpy.o(.text); + *libc.a:memset.o(.text); + *libc.a:strcmp.o(.text); + *libc.a:strcpy.o(.text); + *libc.a:vfprintf.o(.text); + *libc.a:vsprintf.o(.text); + *libc.a:fvwrite.o(.text); + *libc.a:locale.o(.text); + *libc.a:findfp.o(.text); + *libc.a:fflush.o(.text); + *libc.a:wsetup.o(.text); + *libc.a:mbtowc_r.o(.text); + *libc.a:s_isinf.o(.text); + *libc.a:s_isnan.o(.text); + *libc.a:memchr.o(.text); + *libc.a:strlen.o(.text); + *libc.a:dtoa.o(.text); + *libc.a:memmove.o(.text); + *libc.a:stdio.o(.text); + *libc.a:mprec.o(.text); + *libc.a:mallocr.o(.text); + *libc.a:fwalk.o(.text); + *libc.a:freer.o(.text); + *libc.a:makebuf.o(.text); + *libc.a:readr.o(.text); + *libc.a:writer.o(.text); + *libc.a:lseekr.o(.text); + *libc.a:closer.o(.text); + *libc.a:callocr.o(.text); + *libc.a:sbrkr.o(.text); + *libc.a:mlock.o(.text); + *libc.a:fstatr.o(.text); + *libc.a:libcfunc.o(.text); + *libc.a:syscalls.o(.text); + *libc.a:errno.o(.text); + src/libisagbprn.o(.text); } =0 .rodata : @@ -461,6 +458,7 @@ SECTIONS { src/battle_controller_opponent.o(.rodata); src/battle_ai_switch_items.o(.rodata); src/battle_controller_link_opponent.o(.rodata); + src/battle_debug.o(.rodata); src/pokemon.o(.rodata); src/trig.o(.rodata); src/util.o(.rodata); @@ -674,7 +672,6 @@ SECTIONS { src/walda_phrase.o(.rodata); src/gym_leader_rematch.o(.rodata); src/unk_transition.o(.rodata); - src/battle_debug.o(.rodata); data/text_input_strings.o(.rodata); data/fonts.o(.rodata); src/mystery_event_msg.o(.rodata); diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 455c38debb..8a41087f50 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -304,7 +304,7 @@ static const u8 *GetInteractedEventObjectScript(struct MapPosition *position, u8 gSpecialVar_Facing = direction; if (InTrainerHill() == TRUE) - script = sub_81D62AC(); + script = GetTrainerHillTrainerScript(); else script = GetEventObjectScriptPointerByEventObjectId(eventObjectId); diff --git a/src/link_rfu.c b/src/link_rfu.c index 1f3ae4f3c5..4b0b0a2a51 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -2482,7 +2482,7 @@ void WipeTrainerNameRecords(void) } } -void nullsub_5(const char *unused_0, u8 unused_1, u8 unused_2) +void nullsub_5(const void *unused_0, u8 unused_1, u8 unused_2) { // debug? } @@ -2512,7 +2512,7 @@ void sub_800E604(void) sub_800D724(&gUnknown_03005000.unk_9e8); CpuFill16(0, gSendCmd, sizeof gSendCmd); CpuFill16(0, gRecvCmds, sizeof gRecvCmds); - CpuFill16(0, gLinkPlayers, sizeof gLinkPlayers) + CpuFill16(0, gLinkPlayers, sizeof gLinkPlayers); } void sub_800E6D0(void) diff --git a/src/mirage_tower.c b/src/mirage_tower.c index e398c23344..bb9c6e9586 100644 --- a/src/mirage_tower.c +++ b/src/mirage_tower.c @@ -318,7 +318,7 @@ void SetMirageTowerVisibility(void) u16 rand; bool8 visible; - if (VarGet(VAR_ROUTE_111_STATE)) + if (VarGet(VAR_MIRAGE_TOWER_STATE)) { FlagClear(FLAG_MIRAGE_TOWER_VISIBLE); return; diff --git a/src/overworld.c b/src/overworld.c index 2097abc533..cefbd8159d 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -1040,7 +1040,7 @@ static bool16 ShouldLegendaryMusicPlayAtLocation(struct WarpData *warp) case MAP_NUM(ROUTE128): return TRUE; default: - if (VarGet(VAR_RAYQUAZA_STATE) < 4) + if (VarGet(VAR_SOOTOPOLIS_CITY_STATE) < 4) return FALSE; switch (warp->mapNum) { @@ -1081,9 +1081,9 @@ static bool16 IsInfiltratedWeatherInstitute(struct WarpData *warp) static bool16 IsInflitratedSpaceCenter(struct WarpData *warp) { - if (VarGet(VAR_MOSSDEEP_STATE) == 0) + if (VarGet(VAR_MOSSDEEP_CITY_STATE) == 0) return FALSE; - else if (VarGet(VAR_MOSSDEEP_STATE) > 2) + else if (VarGet(VAR_MOSSDEEP_CITY_STATE) > 2) return FALSE; else if (warp->mapGroup != MAP_GROUP(MOSSDEEP_CITY_SPACE_CENTER_1F)) return FALSE; diff --git a/src/pokedex.c b/src/pokedex.c index da3f06bf1c..0e532ed920 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -1319,7 +1319,7 @@ void CB2_Pokedex(void) default: SetVBlankCallback(NULL); sub_80C09B0(0); - DmaFillLarge16(3, 0, (u8 *)VRAM, VRAM_SIZE, 0x1000) + DmaFillLarge16(3, 0, (u8 *)VRAM, VRAM_SIZE, 0x1000); DmaClear32(3, OAM, OAM_SIZE); DmaClear16(3, PLTT, PLTT_SIZE); gMain.state = 1; diff --git a/src/pokenav.c b/src/pokenav.c index 132e4123b0..a5bb51789b 100644 --- a/src/pokenav.c +++ b/src/pokenav.c @@ -31,72 +31,30 @@ struct UnknownPokenavCallbackStruct bool32 (*unk0)(void); u32 (*unk4)(void); bool32 (*unk8)(void); - void (*unkC)(int); + void (*unkC)(s32); u32 (*unk10)(void); void (*unk14)(void); void (*unk18)(void); }; -extern bool32 sub_81C9924(void); -extern u32 sub_81C99C0(void); -extern void sub_81C9990(int); -extern bool32 sub_81C9940(void); -extern u32 sub_81CCFD8(void); -extern u32 sub_81CD070(void); -extern bool32 sub_81CDDD4(void); -extern void sub_81CDE2C(int); -extern u32 sub_81CDE64(void); -extern void sub_81CD1C0(void); -extern void sub_81CECA0(void); -extern u32 sub_81CEF3C(void); -extern u32 sub_81CEFDC(void); -extern bool32 sub_81CF330(void); -extern void sub_81CF3A0(int); -extern u32 sub_81CF3D0(void); -extern void sub_81CEFF0(void); -extern void sub_81CF3F8(void); -extern u32 sub_81CD024(void); -extern u32 sub_81CEF98(void); -extern bool32 sub_81CF368(void); -extern u32 sub_81CF9BC(void); -extern u32 sub_81CFA34(void); -extern bool32 sub_81CFDD0(void); -extern void sub_81CFE40(int); -extern u32 sub_81CFE70(void); -extern void sub_81CFA48(void); -extern void sub_81CFE98(void); -extern u32 sub_81D0450(void); -extern u32 sub_81D04A0(void); -extern bool32 sub_81D0978(void); -extern void sub_81D09B0(int); -extern u32 sub_81D09E0(void); -extern void sub_81D04B8(void); -extern void sub_81D09F4(void); -extern u32 sub_81CFA04(void); -extern bool32 sub_81CFE08(void); - +static u32 sub_81C75E0(void); +static u32 sub_81C75D4(void); static bool32 SetActivePokenavMenu(u32 menuId); static bool32 AnyMonHasRibbon(void); -u32 sub_81C75E0(void); -u32 sub_81C75D4(void); -u32 PokenavMainMenuLoopedTaskIsActive(void); -bool32 WaitForPokenavShutdownFade(void); -void sub_81C7834(void *func1, void *func2); static void InitPokenavResources(struct PokenavResources *a0); -void Task_RunLoopedTask_LinkMode(u8 a0); -void Task_RunLoopedTask(u8 taskId); -void sub_81C742C(u8 taskId); -void ShutdownPokenav(void); static void InitKeys_(void); static void FreePokenavResources(void); static void VBlankCB_Pokenav(void); static void CB2_Pokenav(void); -void sub_81C72BC(void); +static void Task_RunLoopedTask_LinkMode(u8 a0); +static void Task_RunLoopedTask(u8 taskId); +static void sub_81C742C(u8 taskId); +static void sub_81C72BC(void); const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] = { { - .unk0 = sub_81C9298, + .unk0 = PokenavCallback_Init_0, .unk4 = sub_81C941C, .unk8 = sub_81C9924, .unkC = sub_81C9990, @@ -105,7 +63,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] = .unk18 = sub_81C99D4, }, { - .unk0 = sub_81C9298, + .unk0 = PokenavCallback_Init_0, .unk4 = sub_81C941C, .unk8 = sub_81C9940, .unkC = sub_81C9990, @@ -114,7 +72,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] = .unk18 = sub_81C99D4, }, { - .unk0 = sub_81C9338, + .unk0 = PokenavCallback_Init_2, .unk4 = sub_81C941C, .unk8 = sub_81C9940, .unkC = sub_81C9990, @@ -123,7 +81,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] = .unk18 = sub_81C99D4, }, { - .unk0 = sub_81C9368, + .unk0 = PokenavCallback_Init_3, .unk4 = sub_81C941C, .unk8 = sub_81C9940, .unkC = sub_81C9990, @@ -132,16 +90,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] = .unk18 = sub_81C99D4, }, { - .unk0 = sub_81C92CC, - .unk4 = sub_81C941C, - .unk8 = sub_81C9940, - .unkC = sub_81C9990, - .unk10 =sub_81C99C0, - .unk14 = sub_81C9430, - .unk18 = sub_81C99D4, - }, - { - .unk0 = sub_81C9304, + .unk0 = PokenavCallback_Init_4, .unk4 = sub_81C941C, .unk8 = sub_81C9940, .unkC = sub_81C9990, @@ -150,7 +99,16 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] = .unk18 = sub_81C99D4, }, { - .unk0 = sub_81CC4D4, + .unk0 = PokenavCallback_Init_5, + .unk4 = sub_81C941C, + .unk8 = sub_81C9940, + .unkC = sub_81C9990, + .unk10 = sub_81C99C0, + .unk14 = sub_81C9430, + .unk18 = sub_81C99D4, + }, + { + .unk0 = PokenavCallback_Init_6, .unk4 = sub_81CC554, .unk8 = sub_81CC5F4, .unkC = sub_81CC62C, @@ -159,7 +117,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] = .unk18 = sub_81CC670, }, { - .unk0 = sub_81CCFD8, + .unk0 = PokenavCallback_Init_7, .unk4 = sub_81CD070, .unk8 = sub_81CDDD4, .unkC = sub_81CDE2C, @@ -168,7 +126,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] = .unk18 = sub_81CECA0, }, { - .unk0 = sub_81CEF3C, + .unk0 = PokenavCallback_Init_8, .unk4 = sub_81CEFDC, .unk8 = sub_81CF330, .unkC = sub_81CF3A0, @@ -177,7 +135,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] = .unk18 = sub_81CF3F8, }, { - .unk0 = sub_81CD024, + .unk0 = PokenavCallback_Init_9, .unk4 = sub_81CD070, .unk8 = sub_81CDDD4, .unkC = sub_81CDE2C, @@ -186,7 +144,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] = .unk18 = sub_81CECA0, }, { - .unk0 = sub_81CEF98, + .unk0 = PokenavCallback_Init_10, .unk4 = sub_81CEFDC, .unk8 = sub_81CF368, .unkC = sub_81CF3A0, @@ -195,7 +153,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] = .unk18 = sub_81CF3F8, }, { - .unk0 = sub_81CAAE8, + .unk0 = PokenavCallback_Init_11, .unk4 = sub_81CAB24, .unk8 = sub_81CB260, .unkC = sub_81CB29C, @@ -204,7 +162,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] = .unk18 = sub_81CB2E0, }, { - .unk0 = sub_81CF9BC, + .unk0 = PokenavCallback_Init_12, .unk4 = sub_81CFA34, .unk8 = sub_81CFDD0, .unkC = sub_81CFE40, @@ -213,7 +171,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] = .unk18 = sub_81CFE98, }, { - .unk0 = sub_81D0450, + .unk0 = PokenavCallback_Init_13, .unk4 = sub_81D04A0, .unk8 = sub_81D0978, .unkC = sub_81D09B0, @@ -222,7 +180,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] = .unk18 = sub_81D09F4, }, { - .unk0 = sub_81CFA04, + .unk0 = PokenavCallback_Init_14, .unk4 = sub_81CFA34, .unk8 = sub_81CFE08, .unkC = sub_81CFE40, @@ -277,7 +235,7 @@ bool32 FuncIsActiveLoopedTask(LoopedTask func) return FALSE; } -void Task_RunLoopedTask(u8 taskId) +static void Task_RunLoopedTask(u8 taskId) { LoopedTask loopedTask = (LoopedTask)GetWordTaskArg(taskId, 1); s16 *state = &gTasks[taskId].data[0]; @@ -310,7 +268,7 @@ void Task_RunLoopedTask(u8 taskId) } // Every "Continue" action pauses instead. -void Task_RunLoopedTask_LinkMode(u8 taskId) +static void Task_RunLoopedTask_LinkMode(u8 taskId) { LoopedTask task; s16 *state; @@ -365,7 +323,7 @@ void sub_81C72A4(void) FadeScreen(1, 0); } -void sub_81C72BC(void) +static void sub_81C72BC(void) { UpdatePaletteFade(); if (gPaletteFade.active) @@ -458,7 +416,7 @@ static void VBlankCB_Pokenav(void) ProcessSpriteCopyRequests(); } -void sub_81C742C(u8 taskId) +static void sub_81C742C(u8 taskId) { u32 v1; s16 *data = gTasks[taskId].data; @@ -544,12 +502,12 @@ static bool32 SetActivePokenavMenu(u32 menuId) return TRUE; } -u32 sub_81C75D4(void) +static u32 sub_81C75D4(void) { return sub_81C786C(); } -u32 sub_81C75E0(void) +static u32 sub_81C75E0(void) { return gPokenavResources->currentMenuCb1(); } diff --git a/src/pokenav_match_call_ui.c b/src/pokenav_match_call_ui.c index bae3a8d7ae..275a4063e9 100644 --- a/src/pokenav_match_call_ui.c +++ b/src/pokenav_match_call_ui.c @@ -31,22 +31,22 @@ struct MatchCallWindowState { u16 visibleEntries; u16 unkA; u32 unkC; - u32 unk10; + void * unk10; }; -struct UnknownInnerStruct_81C81D4 +struct PokenavSub17Substruct { struct UnknownSubSubStruct_0203CF40 unk0; u32 unk10; u32 unk14; u32 unk18; - u32 unk1C; + void * unk1C; s32 unk20; s32 unk24; u32 unk28; s32 unk2C; u32 unk30; - void (*unk34)(u32, u8*); + void (*unk34)(struct PokenavMonList *, u8*); void (*unk38)(u16, u32, u32); struct Sprite *rightArrow; struct Sprite *upArrow; @@ -55,68 +55,699 @@ struct UnknownInnerStruct_81C81D4 }; // Generally at index 0x11 (17) -struct UnknownSubStruct_81C81D4 +struct PokenavSub17 { - struct UnknownInnerStruct_81C81D4 unk0; + struct PokenavSub17Substruct unk0; u8 tilemapBuffer[0x800]; struct MatchCallWindowState unk888; - u32 unk89C; + s32 unk89C; u32 unk8A0; }; extern void sub_81DB620(u32 windowId, u32 a1, u32 a2, u32 a3, u32 a4); -void sub_81C82E4(struct UnknownSubStruct_81C81D4 *a0); -u32 sub_81C91AC(struct UnknownInnerStruct_81C81D4 *a0, const struct BgTemplate *a1, struct MatchCallListTemplate *a2, s32 a3); +void sub_81C82E4(struct PokenavSub17 *a0); +bool32 sub_81C91AC(struct PokenavSub17Substruct *a0, const struct BgTemplate *a1, struct MatchCallListTemplate *a2, s32 a3); void sub_81C9160(struct MatchCallWindowState *a0, struct MatchCallListTemplate *a1); void SpriteCB_MatchCallUpArrow(struct Sprite *sprite); void SpriteCB_MatchCallDownArrow(struct Sprite *sprite); void SpriteCB_MatchCallRightArrow(struct Sprite *sprite); -void ToggleMatchCallArrows(struct UnknownInnerStruct_81C81D4 *a0, u32 a1); -void sub_81C8FE0(struct UnknownInnerStruct_81C81D4 *a0); -void sub_81C8EF8(struct MatchCallWindowState *a0, struct UnknownInnerStruct_81C81D4 *a1); +void ToggleMatchCallArrows(struct PokenavSub17Substruct *a0, u32 a1); +void sub_81C8FE0(struct PokenavSub17Substruct *a0); +void sub_81C8EF8(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1); void sub_81C8ED0(void); -void sub_81C8E54(struct MatchCallWindowState *a0, struct UnknownInnerStruct_81C81D4 *a1, u32 a2); -void PrintMatchCallFieldNames(struct UnknownInnerStruct_81C81D4 *a0, u32 a1); -void sub_81C8D4C(struct MatchCallWindowState *a0, struct UnknownInnerStruct_81C81D4 *a1); -void sub_81C8CB4(struct MatchCallWindowState *a0, struct UnknownInnerStruct_81C81D4 *a1); -void sub_81C8B70(struct UnknownSubSubStruct_0203CF40 *a0, u32 a1, u32 a2); -void sub_81C8568(s32 a0, struct UnknownInnerStruct_81C81D4 *a1); -void sub_81C83AC(u32 a0, u32 a1, u32 a2, u32 a3, u32 a4, struct UnknownInnerStruct_81C81D4 *a5); -void sub_81C837C(struct MatchCallWindowState *a0, struct UnknownInnerStruct_81C81D4 *a1); +void sub_81C8E54(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1, u32 a2); +void PrintMatchCallFieldNames(struct PokenavSub17Substruct *a0, u32 a1); +void sub_81C8D4C(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1); +void sub_81C8CB4(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1); +void sub_81C8B70(struct UnknownSubSubStruct_0203CF40 *a0, s32 a1, s32 a2); +void sub_81C8568(s32 a0, struct PokenavSub17Substruct *a1); +void sub_81C83AC(void * a0, u32 a1, u32 a2, u32 a3, u32 a4, struct PokenavSub17Substruct *a5); +void sub_81C837C(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1); void sub_81C835C(struct UnknownSubSubStruct_0203CF40 *a0); -u32 LoopedTask_sub_81C8254(s32 a0); +u32 LoopedTask_sub_81C8254(s32 state); bool32 sub_81C83E0(void); -u32 LoopedTask_sub_81C83F0(s32 a0); -u32 LoopedTask_sub_81C85A0(s32 a0); -u32 LoopedTask_sub_81C8870(s32 a0); -u32 LoopedTask_sub_81C8A28(s32 a0); -u32 LoopedTask_sub_81C8958(s32 a0); +u32 LoopedTask_sub_81C83F0(s32 state); +u32 LoopedTask_sub_81C85A0(s32 state); +u32 LoopedTask_sub_81C8870(s32 state); +u32 LoopedTask_sub_81C8A28(s32 state); +u32 LoopedTask_sub_81C8958(s32 state); static const u16 sMatchcallArrowPaletteData[] = INCBIN_U16("graphics/pokenav/arrows_matchcall.gbapal"); static const u32 sMatchcallArrowSpriteSheetData[] = INCBIN_U32("graphics/pokenav/arrows_matchcall.4bpp.lz"); -static const u8 sPokenavColors_0861FBE4[] = -{ - 0, 2, 5 -}; +EWRAM_DATA u32 gUnknown_0203CF44 = 0; -static const u8 *const sMatchCallFieldNames[] = +bool32 sub_81C81D4(const struct BgTemplate *arg0, struct MatchCallListTemplate *arg1, s32 arg2) { - gText_PokenavMatchCall_Strategy, - gText_PokenavMatchCall_TrainerPokemon, - gText_PokenavMatchCall_SelfIntroduction -}; + struct PokenavSub17 *structPtr = AllocSubstruct(17, sizeof(struct PokenavSub17)); + if (structPtr == NULL) + return FALSE; -static const u8 sMatchCallFieldColors[] = -{ - 1, 4, 5 -}; + sub_81C9160(&structPtr->unk888, arg1); + if (!sub_81C91AC(&structPtr->unk0, arg0, arg1, arg2)) + return FALSE; -static const u8 sUnknown_0861FBF7[] = + CreateLoopedTask(LoopedTask_sub_81C8254, 6); + return TRUE; +} + +bool32 sub_81C8224(void) { - 2, 4, 6, 7, 0 -}; + return FuncIsActiveLoopedTask(LoopedTask_sub_81C8254); +} + +void sub_81C8234(void) +{ + struct PokenavSub17 *structPtr; + + structPtr = GetSubstructPtr(17); + sub_81C8FE0(&structPtr->unk0); + RemoveWindow(structPtr->unk0.unk0.windowId); + FreePokenavSubstruct(17); +} + +u32 LoopedTask_sub_81C8254(s32 state) +{ + struct PokenavSub17 *structPtr; + + if (IsDma3ManagerBusyWithBgCopy()) + return 2; + + structPtr = GetSubstructPtr(17); + + switch (state) + { + case 0: + sub_81C82E4(structPtr); + return LT_INC_AND_PAUSE; + case 1: + sub_81C835C(&structPtr->unk0.unk0); + return LT_INC_AND_PAUSE; + case 2: + sub_81C837C(&structPtr->unk888, &structPtr->unk0); + return LT_INC_AND_PAUSE; + case 3: + if (sub_81C83E0()) + { + return LT_PAUSE; + } + else + { + sub_81C8ED0(); + return LT_INC_AND_CONTINUE; + } + case 4: + sub_81C8EF8(&structPtr->unk888, &structPtr->unk0); + return LT_FINISH; + default: + return LT_FINISH; + } +} + +void sub_81C82E4(struct PokenavSub17 *a0) +{ + u16 tileNum = (a0->unk0.unk0.unk1 << 12) | a0->unk0.unk0.unk6; + sub_8199DF0(a0->unk0.unk0.bg, PIXEL_FILL(1), a0->unk0.unk0.unk6, 1); + sub_8199DF0(a0->unk0.unk0.bg, PIXEL_FILL(4), a0->unk0.unk0.unk6 + 1, 1); + SetBgTilemapBuffer(a0->unk0.unk0.bg, a0->tilemapBuffer); + FillBgTilemapBufferRect_Palette0(a0->unk0.unk0.bg, tileNum, 0, 0, 32, 32); + ChangeBgY(a0->unk0.unk0.bg, 0, 0); + ChangeBgX(a0->unk0.unk0.bg, 0, 0); + ChangeBgY(a0->unk0.unk0.bg, a0->unk0.unk0.unk3 << 11, 2); + CopyBgTilemapBufferToVram(a0->unk0.unk0.bg); +} + +void sub_81C835C(struct UnknownSubSubStruct_0203CF40 *a0) +{ + FillWindowPixelBuffer(a0->windowId, PIXEL_FILL(1)); + PutWindowTilemap(a0->windowId); + CopyWindowToVram(a0->windowId, 1); +} + +void sub_81C837C(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1) +{ + s32 arg2 = a0->listLength - a0->windowTopIndex; + if (arg2 > a0->visibleEntries) + arg2 = a0->visibleEntries; + + sub_81C83AC(a0->unk10, a0->windowTopIndex, arg2, a0->unkC, 0, a1); +} + +void sub_81C83AC(void * a0, u32 a1, u32 a2, u32 a3, u32 a4, struct PokenavSub17Substruct *a5) +{ + if (a2 == 0) + return; + + a5->unk1C = a0 + a1 * a3; + a5->unk18 = a3; + a5->unk0.unkC = 0; + a5->unk0.unkE = a2; + a5->unk14 = a1; + a5->unk10 = a4; + CreateLoopedTask(LoopedTask_sub_81C83F0, 5); +} + +bool32 sub_81C83E0(void) +{ + return FuncIsActiveLoopedTask(LoopedTask_sub_81C83F0); +} + +u32 LoopedTask_sub_81C83F0(s32 state) +{ + u32 v1; + struct PokenavSub17Substruct *structPtr = GetSubstructPtr(17); + + switch (state) + { + case 0: + v1 = (structPtr->unk0.unkA + structPtr->unk0.unkC + structPtr->unk10) & 0xF; + structPtr->unk34(structPtr->unk1C, structPtr->unkTextBuffer); + if (structPtr->unk38 != NULL) + structPtr->unk38(structPtr->unk0.windowId, structPtr->unk14, v1); + + AddTextPrinterParameterized(structPtr->unk0.windowId, structPtr->unk0.fontId, structPtr->unkTextBuffer, 8, (v1 << 4) + 1, 255, NULL); + if (++structPtr->unk0.unkC >= structPtr->unk0.unkE) + { + if (structPtr->unk38 != NULL) + CopyWindowToVram(structPtr->unk0.windowId, 3); + else + CopyWindowToVram(structPtr->unk0.windowId, 2); + return LT_INC_AND_PAUSE; + } + else + { + structPtr->unk1C += structPtr->unk18; + structPtr->unk14++; + return LT_CONTINUE; + } + case 1: + if (IsDma3ManagerBusyWithBgCopy()) + return LT_PAUSE; + return LT_FINISH; + } + return LT_FINISH; +} + +bool32 ShouldShowUpArrow(void) +{ + struct PokenavSub17 *structPtr = GetSubstructPtr(17); + + return (structPtr->unk888.windowTopIndex != 0); +} + +bool32 ShouldShowDownArrow(void) +{ + struct PokenavSub17 *structPtr = GetSubstructPtr(17); + struct MatchCallWindowState *subPtr = &structPtr->unk888; + + return (subPtr->windowTopIndex + subPtr->visibleEntries < subPtr->listLength); +} + +void MatchCall_MoveWindow(s32 a0, bool32 a1) +{ + struct PokenavSub17 *structPtr = GetSubstructPtr(17); + struct MatchCallWindowState *subPtr = &structPtr->unk888; + + if (a0 < 0) + { + if (subPtr->windowTopIndex + a0 < 0) + a0 = -1 * subPtr->windowTopIndex; + if (a1) + sub_81C83AC(subPtr->unk10, subPtr->windowTopIndex + a0, a0 * -1, subPtr->unkC, a0, &structPtr->unk0); + } + else if (a1) + { + s32 temp = gUnknown_0203CF44 = subPtr->windowTopIndex + subPtr->visibleEntries; + if (temp + a0 >= subPtr->listLength) + a0 = subPtr->listLength - temp; + + sub_81C83AC(subPtr->unk10, gUnknown_0203CF44, a0, subPtr->unkC, subPtr->visibleEntries, &structPtr->unk0); + } + + sub_81C8568(a0, &structPtr->unk0); + subPtr->windowTopIndex += a0; +} + +void sub_81C8568(s32 a0, struct PokenavSub17Substruct *a1) +{ + a1->unk20 = GetBgY(a1->unk0.bg); + a1->unk24 = a1->unk20 + (a0 << 12); + if (a0 > 0) + a1->unk30 = 1; + else + a1->unk30 = 2; + a1->unk2C = a0; + a1->unk28 = CreateLoopedTask(LoopedTask_sub_81C85A0, 6); +} + +u32 LoopedTask_sub_81C85A0(s32 state) +{ + s32 y, v1; + bool32 flag; + struct PokenavSub17 *structPtr = GetSubstructPtr(17); + struct PokenavSub17Substruct *subPtr = &structPtr->unk0; + + switch (state) + { + case 0: + if (!sub_81C83E0()) + return LT_INC_AND_CONTINUE; + return LT_PAUSE; + case 1: + flag = FALSE; + y = GetBgY(subPtr->unk0.bg); + v1 = ChangeBgY(subPtr->unk0.bg, 0x1000, subPtr->unk30); + if (subPtr->unk30 == 2) + { + if ((y > subPtr->unk24 || y <= subPtr->unk20) && v1 <= subPtr->unk24) + flag = TRUE; + } + else + { + if ((y < subPtr->unk24 || y >= subPtr->unk20) && v1 >= subPtr->unk24) + flag = TRUE; + } + + if (flag) + { + subPtr->unk0.unkA = (subPtr->unk0.unkA + subPtr->unk2C) & 0xF; + ChangeBgY(subPtr->unk0.bg, subPtr->unk24, 0); + return LT_FINISH; + } + return LT_PAUSE; + } + return LT_FINISH; +} + +bool32 sub_81C8630(void) +{ + struct PokenavSub17 *structPtr = GetSubstructPtr(17); + return IsLoopedTaskActive(structPtr->unk0.unk28); +} + +struct MatchCallWindowState *GetMatchCallWindowStruct(void) +{ + struct PokenavSub17 *structPtr = GetSubstructPtr(17); + return &structPtr->unk888; +} + +int MatchCall_MoveCursorUp(void) +{ + struct MatchCallWindowState *structPtr = GetMatchCallWindowStruct(); + + if (structPtr->selectedIndexOffset != 0) + { + structPtr->selectedIndexOffset--; + return 1; + } + if (ShouldShowUpArrow()) + { + MatchCall_MoveWindow(-1, TRUE); + return 2; + } + return 0; +} + +int MatchCall_MoveCursorDown(void) +{ + struct MatchCallWindowState *structPtr = GetMatchCallWindowStruct(); + + if (structPtr->windowTopIndex + structPtr->selectedIndexOffset >= structPtr->listLength - 1) + return 0; + if (structPtr->selectedIndexOffset < structPtr->visibleEntries - 1) + { + structPtr->selectedIndexOffset++; + return 1; + } + if (ShouldShowDownArrow()) + { + MatchCall_MoveWindow(1, TRUE); + return 2; + } + return 0; +} + +int MatchCall_PageUp(void) +{ + s32 scroll; + struct MatchCallWindowState *structPtr = GetMatchCallWindowStruct(); + + if (ShouldShowUpArrow()) + { + if (structPtr->windowTopIndex >= structPtr->visibleEntries) + scroll = structPtr->visibleEntries; + else + scroll = structPtr->windowTopIndex; + MatchCall_MoveWindow(scroll * -1, TRUE); + return 2; + } + else if (structPtr->selectedIndexOffset != 0) + { + structPtr->selectedIndexOffset = 0; + return 1; + } + return 0; +} + +int MatchCall_PageDown(void) +{ + struct MatchCallWindowState *structPtr = GetMatchCallWindowStruct(); + + if (ShouldShowDownArrow()) + { + s32 windowBottomIndex = structPtr->windowTopIndex + structPtr->visibleEntries; + s32 scroll = structPtr->unk4 - structPtr->windowTopIndex; + + if (windowBottomIndex <= structPtr->unk4) + scroll = structPtr->visibleEntries; + MatchCall_MoveWindow(scroll, TRUE); + return 2; + } + else + { + s32 cursor, lastVisibleIndex; + if (structPtr->listLength >= structPtr->visibleEntries) + { + cursor = structPtr->selectedIndexOffset; + lastVisibleIndex = structPtr->visibleEntries; + } + else + { + cursor = structPtr->selectedIndexOffset; + lastVisibleIndex = structPtr->listLength; + } + lastVisibleIndex -= 1; + if (cursor >= lastVisibleIndex) + return 0; + + structPtr->selectedIndexOffset = lastVisibleIndex; + return 1; + } +} + +u32 GetSelectedMatchCall(void) +{ + struct MatchCallWindowState *structPtr = GetMatchCallWindowStruct(); + + return structPtr->windowTopIndex + structPtr->selectedIndexOffset; +} + +u32 GetMatchCallListTopIndex(void) +{ + struct MatchCallWindowState *structPtr = GetMatchCallWindowStruct(); + + return structPtr->windowTopIndex; +} + +void sub_81C877C(void) +{ + struct PokenavSub17 *structPtr = GetSubstructPtr(17); + structPtr->unk89C = 0; + structPtr->unk8A0 = CreateLoopedTask(LoopedTask_sub_81C8870, 6); +} + +void sub_81C87AC(s16 a0) +{ + struct PokenavSub17 *structPtr = GetSubstructPtr(17); + structPtr->unk888.windowTopIndex += a0; + structPtr->unk89C = 0; + structPtr->unk8A0 = CreateLoopedTask(LoopedTask_sub_81C8958, 6); +} + +void sub_81C87F0(void) +{ + struct PokenavSub17 *structPtr = GetSubstructPtr(17); + structPtr->unk89C = 0; + structPtr->unk8A0 = CreateLoopedTask(LoopedTask_sub_81C8A28, 6); +} + +bool32 sub_81C8820(void) +{ + struct PokenavSub17 *structPtr = GetSubstructPtr(17); + return IsLoopedTaskActive(structPtr->unk8A0); +} + +void sub_81C8838(void) +{ + struct PokenavSub17 *structPtr = GetSubstructPtr(17); + struct MatchCallWindowState *subPtr = &structPtr->unk888; + structPtr->unk0.unk38(structPtr->unk0.unk0.windowId, subPtr->windowTopIndex + subPtr->selectedIndexOffset, (structPtr->unk0.unk0.unkA + subPtr->selectedIndexOffset) & 0xF); + CopyWindowToVram(structPtr->unk0.unk0.windowId, 1); +} + +u32 LoopedTask_sub_81C8870(s32 state) +{ + struct PokenavSub17 *structPtr = GetSubstructPtr(17); + + switch (state) + { + case 0: + ToggleMatchCallArrows(&structPtr->unk0, 1); + // fall-through + case 1: + if (structPtr->unk89C != structPtr->unk888.selectedIndexOffset) + sub_81C8B70(&structPtr->unk0.unk0, structPtr->unk89C, 1); + + structPtr->unk89C++; + return LT_INC_AND_PAUSE; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + { + if (structPtr->unk89C != structPtr->unk888.visibleEntries) + return 6; + if (structPtr->unk888.selectedIndexOffset != 0) + sub_81C8B70(&structPtr->unk0.unk0, structPtr->unk89C, structPtr->unk888.selectedIndexOffset); + + return LT_INC_AND_PAUSE; + } + return LT_PAUSE; + case 3: + if (!IsDma3ManagerBusyWithBgCopy()) + { + if (structPtr->unk888.selectedIndexOffset != 0) + { + MatchCall_MoveWindow(structPtr->unk888.selectedIndexOffset, FALSE); + return LT_INC_AND_PAUSE; + } + return LT_FINISH; + } + return LT_PAUSE; + case 4: + if (sub_81C8630()) + return LT_PAUSE; + + structPtr->unk888.selectedIndexOffset = 0; + return LT_FINISH; + } + return LT_FINISH; +} + +u32 LoopedTask_sub_81C8958(s32 state) +{ + struct PokenavSub17 *structPtr = GetSubstructPtr(17); + if (IsDma3ManagerBusyWithBgCopy()) + return LT_PAUSE; + + switch (state) + { + case 0: + sub_81C8CB4(&structPtr->unk888, &structPtr->unk0); + break; + case 1: + PrintMatchCallFieldNames(&structPtr->unk0, 0); + break; + case 2: + sub_81C8E54(&structPtr->unk888, &structPtr->unk0, 0); + break; + case 3: + PrintMatchCallFieldNames(&structPtr->unk0, 1); + break; + case 4: + sub_81C8E54(&structPtr->unk888, &structPtr->unk0, 1); + break; + case 5: + PrintMatchCallFieldNames(&structPtr->unk0, 2); + break; + case 6: + sub_81C8E54(&structPtr->unk888, &structPtr->unk0, 2); + break; + case 7: + sub_81C8E54(&structPtr->unk888, &structPtr->unk0, 3); + break; + default: + return LT_FINISH; + } + return LT_INC_AND_PAUSE; +} + +u32 LoopedTask_sub_81C8A28(s32 state) +{ + struct PokenavSub17 *structPtr; + struct MatchCallWindowState *subPtr888; + struct PokenavSub17Substruct *subPtr0; + s32 r5, *ptr; + + if (IsDma3ManagerBusyWithBgCopy()) + return LT_PAUSE; + + structPtr = GetSubstructPtr(17); + subPtr888 = &structPtr->unk888; + subPtr0 = &structPtr->unk0; + + switch (state) + { + case 0: + sub_81C8D4C(subPtr888, subPtr0); + return LT_INC_AND_PAUSE; + case 1: + ptr = &structPtr->unk89C; + if (++(*ptr) < structPtr->unk888.visibleEntries) + { + sub_81C8B70(&subPtr0->unk0, *ptr, 1); + return LT_PAUSE; + } + + *ptr = 0; + if (subPtr888->listLength <= subPtr888->visibleEntries) + { + if (subPtr888->windowTopIndex != 0) + { + s32 r4 = subPtr888->windowTopIndex; + r5 = -r4; + sub_81C8B70(&subPtr0->unk0, r5, r4); + subPtr888->selectedIndexOffset = r4; + *ptr = r5; + return LT_INC_AND_PAUSE; + } + } + else + { + if (subPtr888->windowTopIndex + subPtr888->visibleEntries > subPtr888->listLength) + { + s32 r4 = subPtr888->windowTopIndex + subPtr888->visibleEntries - subPtr888->listLength; + r5 = -r4; + sub_81C8B70(&subPtr0->unk0, r5, r4); + subPtr888->selectedIndexOffset = r4; + *ptr = r5; + return LT_INC_AND_PAUSE; + } + } + return 9; + case 2: + MatchCall_MoveWindow(structPtr->unk89C, FALSE); + return LT_INC_AND_PAUSE; + case 3: + if (!sub_81C8630()) + { + structPtr->unk89C = 0; + return 1; + } + return 2; + case 4: + sub_81C83AC(subPtr888->unk10, subPtr888->windowTopIndex + structPtr->unk89C, 1, subPtr888->unkC, structPtr->unk89C, &structPtr->unk0); + return LT_INC_AND_PAUSE; + case 5: + if (sub_81C83E0()) + return LT_PAUSE; + if (++structPtr->unk89C >= subPtr888->listLength || structPtr->unk89C >= subPtr888->visibleEntries) + return LT_INC_AND_CONTINUE; + return 9; + case 6: + ToggleMatchCallArrows(subPtr0, 0); + return LT_FINISH; + } + + return LT_FINISH; +} + +void sub_81C8B70(struct UnknownSubSubStruct_0203CF40 *a0, s32 a1, s32 a2) +{ + u8 *v1 = (u8*)GetWindowAttribute(a0->windowId, WINDOW_TILE_DATA); + u32 v2 = a0->unk4 * 64; + + a1 = (a0->unkA + a1) & 0xF; + if (a1 + a2 <= 16) + { + CpuFastFill8(PIXEL_FILL(1), v1 + a1 * v2, a2 * v2); + CopyWindowToVram(a0->windowId, 2); + } + else + { + u32 v3 = 16 - a1; + u32 v4 = a2 - v3; + + CpuFastFill8(PIXEL_FILL(1), v1 + a1 * v2, v3 * v2); + CpuFastFill8(PIXEL_FILL(1), v1, v4 * v2); + CopyWindowToVram(a0->windowId, 2); + } + + for (a2--; a2 != -1; a1 = (a1 + 1) & 0xF, a2--) + sub_81CBD48(a0->windowId, a1); + + CopyWindowToVram(a0->windowId, 1); +} + +void sub_81C8C64(struct UnknownSubSubStruct_0203CF40 *a0, u32 a1) +{ + u16 var; + u16 *v1 = (u16*)GetBgTilemapBuffer(GetWindowAttribute(a0->windowId, WINDOW_BG)); + v1 += ((a0->unkA << 6) + a0->unk2) - 1; + + if (a1 != 0) + var = (a0->unk1 << 12) | (a0->unk6 + 1); + else + var = (a0->unk1 << 12) | (a0->unk6); + + v1[0] = var; + v1[0x20] = var; +} + +void sub_81C8CB4(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1) +{ + u8 colors[3] = {0, 2, 5}; + + a1->unk34(a0->unk10 + a0->unkC * a0->windowTopIndex, a1->unkTextBuffer); + a1->unk38(a1->unk0.windowId, a0->windowTopIndex, a1->unk0.unkA); + FillWindowPixelRect(a1->unk0.windowId, PIXEL_FILL(4), 0, a1->unk0.unkA * 16, a1->unk0.unk4 * 8, 16); + AddTextPrinterParameterized3(a1->unk0.windowId, a1->unk0.fontId, 8, (a1->unk0.unkA * 16) + 1, colors, TEXT_SPEED_FF, a1->unkTextBuffer); + sub_81C8C64(&a1->unk0, 1); + CopyWindowRectToVram(a1->unk0.windowId, 3, 0, a1->unk0.unkA * 2, a1->unk0.unk4, 2); +} + +void sub_81C8D4C(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1) +{ + a1->unk34(a0->unk10 + a0->unkC * a0->windowTopIndex, a1->unkTextBuffer); + FillWindowPixelRect(a1->unk0.windowId, PIXEL_FILL(1), 0, a1->unk0.unkA * 16, a1->unk0.unk4 * 8, 16); + AddTextPrinterParameterized(a1->unk0.windowId, a1->unk0.fontId, a1->unkTextBuffer, 8, a1->unk0.unkA * 16 + 1, TEXT_SPEED_FF, NULL); + sub_81C8C64(&a1->unk0, 0); + CopyWindowToVram(a1->unk0.windowId, 3); +} + +void PrintMatchCallFieldNames(struct PokenavSub17Substruct *a0, u32 fieldId) +{ + const u8 *fieldNames[] = {gText_PokenavMatchCall_Strategy, gText_PokenavMatchCall_TrainerPokemon, gText_PokenavMatchCall_SelfIntroduction}; + u8 colors[3] = {1, 4, 5}; + u32 top = (a0->unk0.unkA + 1 + (fieldId * 2)) & 0xF; + + FillWindowPixelRect(a0->unk0.windowId, PIXEL_FILL(1), 0, top << 4, a0->unk0.unk4, 16); + AddTextPrinterParameterized3(a0->unk0.windowId, 7, 2, (top << 4) + 1, colors, -1, fieldNames[fieldId]); + CopyWindowRectToVram(a0->unk0.windowId, 2, 0, top << 1, a0->unk0.unk4, 2); +} + +void sub_81C8E54(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1, u32 a2) +{ + static const u8 array[] = {2, 4, 6, 7}; + u32 r6 = (a1->unk0.unkA + array[a2]) & 0xF; + const u8 *str = sub_81CAFD8(a0->windowTopIndex, a2); + + if (str != NULL) + { + sub_81DB620(a1->unk0.windowId, 1, r6 * 2, a1->unk0.unk4 - 1, 2); + AddTextPrinterParameterized(a1->unk0.windowId, 7, str, 2, (r6 << 4) + 1, TEXT_SPEED_FF, NULL); + CopyWindowRectToVram(a1->unk0.windowId, 2, 0, r6 * 2, a1->unk0.unk4, 2); + } +} static const struct CompressedSpriteSheet sMatchcallArrowSpriteSheets[] = { @@ -186,835 +817,38 @@ static const struct SpriteTemplate sMatchCallUpDownArrowSprite = .callback = SpriteCallbackDummy }; -EWRAM_DATA u32 gUnknown_0203CF44 = 0; - -bool32 sub_81C81D4(const struct BgTemplate *arg0, struct MatchCallListTemplate *arg1, s32 arg2) -{ - u32 v1; - struct UnknownSubStruct_81C81D4 *structPtr; - - structPtr = AllocSubstruct(0x11, sizeof(struct UnknownSubStruct_81C81D4)); - - if (structPtr == NULL) - return FALSE; - - sub_81C9160(&structPtr->unk888, arg1); - - v1 = sub_81C91AC(&structPtr->unk0, arg0, arg1, arg2); - if (v1 == 0) - return FALSE; - - CreateLoopedTask(LoopedTask_sub_81C8254, 6); - return TRUE; -} - -bool32 sub_81C8224(void) -{ - return FuncIsActiveLoopedTask(LoopedTask_sub_81C8254); -} - -void sub_81C8234(void) -{ - struct UnknownSubStruct_81C81D4 *structPtr; - - structPtr = GetSubstructPtr(0x11); - sub_81C8FE0(&structPtr->unk0); - RemoveWindow(structPtr->unk0.unk0.windowId); - FreePokenavSubstruct(0x11); -} - -u32 LoopedTask_sub_81C8254(s32 a0) -{ - struct UnknownSubStruct_81C81D4 *structPtr; - - if (IsDma3ManagerBusyWithBgCopy()) - return 2; - - structPtr = GetSubstructPtr(0x11); - - switch (a0) - { - case 0: - sub_81C82E4(structPtr); - return 0; - case 1: - sub_81C835C(&structPtr->unk0.unk0); - return 0; - case 2: - sub_81C837C(&structPtr->unk888, &structPtr->unk0); - return 0; - case 3: - if (sub_81C83E0()) - { - return 2; - } - else - { - sub_81C8ED0(); - return 1; - } - case 4: - sub_81C8EF8(&structPtr->unk888, &structPtr->unk0); - return 4; - default: - return 4; - } -} - -void sub_81C82E4(struct UnknownSubStruct_81C81D4 *a0) -{ - u16 v1 = (a0->unk0.unk0.unk1 << 12) | a0->unk0.unk0.unk6; - sub_8199DF0(a0->unk0.unk0.bg, PIXEL_FILL(1), a0->unk0.unk0.unk6, 1); - sub_8199DF0(a0->unk0.unk0.bg, PIXEL_FILL(4), a0->unk0.unk0.unk6 + 1, 1); - SetBgTilemapBuffer(a0->unk0.unk0.bg, a0->tilemapBuffer); - FillBgTilemapBufferRect_Palette0(a0->unk0.unk0.bg, v1, 0, 0, 32, 32); - ChangeBgY(a0->unk0.unk0.bg, 0, 0); - ChangeBgX(a0->unk0.unk0.bg, 0, 0); - ChangeBgY(a0->unk0.unk0.bg, a0->unk0.unk0.unk3 << 11, 2); - CopyBgTilemapBufferToVram(a0->unk0.unk0.bg); -} - -void sub_81C835C(struct UnknownSubSubStruct_0203CF40 *a0) -{ - FillWindowPixelBuffer(a0->windowId, PIXEL_FILL(1)); - PutWindowTilemap(a0->windowId); - CopyWindowToVram(a0->windowId, 1); -} - -void sub_81C837C(struct MatchCallWindowState *a0, struct UnknownInnerStruct_81C81D4 *a1) -{ - s32 v1; - s32 v2; - - // TODO: Clean this up. - v1 = a0->listLength - a0->windowTopIndex; - v2 = a0->visibleEntries; - if (v1 > a0->visibleEntries) - v1 = v2; - sub_81C83AC(a0->unk10, a0->windowTopIndex, v1, a0->unkC, 0, a1); -} - -void sub_81C83AC(u32 a0, u32 a1, u32 a2, u32 a3, u32 a4, struct UnknownInnerStruct_81C81D4 *a5) -{ - if (a2 == 0) - return; - - a5->unk1C = a0 + a1 * a3; - a5->unk18 = a3; - a5->unk0.unkC = 0; - a5->unk0.unkE = a2; - a5->unk14 = a1; - a5->unk10 = a4; - CreateLoopedTask(LoopedTask_sub_81C83F0, 5); -} - -bool32 sub_81C83E0(void) -{ - return FuncIsActiveLoopedTask(LoopedTask_sub_81C83F0); -} - -u32 LoopedTask_sub_81C83F0(s32 a0) -{ - struct UnknownInnerStruct_81C81D4 *structPtr; - u32 v1; - - structPtr = &((struct UnknownSubStruct_81C81D4*)GetSubstructPtr(0x11))->unk0; - switch (a0) - { - case 0: - v1 = (structPtr->unk0.unkA + structPtr->unk0.unkC + structPtr->unk10) & 0xF; - structPtr->unk34(structPtr->unk1C, structPtr->unkTextBuffer); - if (structPtr->unk38 != NULL) - // Accessing unk0.windowId as if it were a u16...? - // It's accessed as a u8 again in the very next line... - structPtr->unk38(*(u16*)(&structPtr->unk0.windowId), structPtr->unk14, v1); - - AddTextPrinterParameterized(structPtr->unk0.windowId, structPtr->unk0.fontId, structPtr->unkTextBuffer, 8, (v1 << 4) + 1, 255, NULL); - - if (++structPtr->unk0.unkC >= structPtr->unk0.unkE) - { - if (structPtr->unk38 != NULL) - CopyWindowToVram(structPtr->unk0.windowId, 3); - else - CopyWindowToVram(structPtr->unk0.windowId, 2); - return 0; - } - else - { - structPtr->unk1C += structPtr->unk18; - structPtr->unk14++; - return 3; - } - case 1: - if (IsDma3ManagerBusyWithBgCopy()) - return 2; - else - return 4; - default: - return 4; - } -} - -bool32 ShouldShowUpArrow(void) -{ - u16 v1; - s32 v2; - struct UnknownSubStruct_81C81D4 *structPtr; - structPtr = GetSubstructPtr(0x11); - - return structPtr->unk888.windowTopIndex != 0; -} - -bool32 ShouldShowDownArrow(void) -{ - struct MatchCallWindowState *subPtr; - struct UnknownSubStruct_81C81D4 *structPtr; - structPtr = GetSubstructPtr(0x11); - subPtr = &structPtr->unk888; - - return subPtr->windowTopIndex + subPtr->visibleEntries < subPtr->listLength; -} - -void MatchCall_MoveWindow(s32 a0, bool32 a1_) -{ - register bool32 a1 asm("r4")= a1_; - s32 v1; - struct UnknownSubStruct_81C81D4 *structPtr = GetSubstructPtr(0x11); - register struct MatchCallWindowState *subPtr asm("r5") = &structPtr->unk888; - - if (a0 < 0) - { - u16 temp = subPtr->windowTopIndex; - if (temp + a0 < 0) - v1 = -1 * temp; - else - v1 = a0; - if (a1) - sub_81C83AC(subPtr->unk10, temp + v1, v1 * -1, subPtr->unkC, v1, &structPtr->unk0); - } - else if (a1) - { - s32 temp = gUnknown_0203CF44 = subPtr->windowTopIndex + subPtr->visibleEntries; - s32 listLength; - if (temp + a0 >= (listLength = subPtr->listLength)) - v1 = listLength - temp; - else - v1 = a0; - - sub_81C83AC(subPtr->unk10, gUnknown_0203CF44, v1, subPtr->unkC, subPtr->visibleEntries, &structPtr->unk0); - // Needed to prevent GCC from combining the two sub_81C83AC calls. - asm(""); - } - else - { - v1 = a0; - } - - sub_81C8568(v1, &structPtr->unk0); - subPtr->windowTopIndex += v1; -} - -void sub_81C8568(s32 a0, struct UnknownInnerStruct_81C81D4 *a1) -{ - a1->unk20 = GetBgY(a1->unk0.bg); - a1->unk24 = a1->unk20 + (a0 << 12); - if (a0 > 0) - a1->unk30 = 1; - else - a1->unk30 = 2; - a1->unk2C = a0; - a1->unk28 = CreateLoopedTask(LoopedTask_sub_81C85A0, 6); -} - -u32 LoopedTask_sub_81C85A0(s32 a0) -{ - s32 y; - s32 v1; - bool32 flag; - struct UnknownInnerStruct_81C81D4 *structPtr; - structPtr = &((struct UnknownSubStruct_81C81D4 *)GetSubstructPtr(0x11))->unk0; - - switch (a0) - { - case 0: - if (sub_81C83E0() == FALSE) - return 1; - else - return 2; - case 1: - flag = FALSE; - y = GetBgY(structPtr->unk0.bg); - v1 = ChangeBgY(structPtr->unk0.bg, 0x1000, structPtr->unk30); - if (structPtr->unk30 == 2) - { - if ((y > structPtr->unk24 || y <= structPtr->unk20) && v1 <= structPtr->unk24) - { - flag = TRUE; - } - } - else - { - if ((y < structPtr->unk24 || y >= structPtr->unk20) && v1 >= structPtr->unk24) - { - flag = TRUE; - } - } - if (flag) - { - structPtr->unk0.unkA = (structPtr->unk0.unkA + structPtr->unk2C) & 0xF; - ChangeBgY(structPtr->unk0.bg, structPtr->unk24, 0); - return 4; - } - else - { - return 2; - } - default: - return 4; - } -} - -bool32 sub_81C8630(void) -{ - struct UnknownSubStruct_81C81D4 *structPtr; - structPtr = GetSubstructPtr(0x11); - return IsLoopedTaskActive(structPtr->unk0.unk28); -} - -struct MatchCallWindowState *GetMatchCallWindowStruct(void) -{ - struct UnknownSubStruct_81C81D4 *structPtr; - structPtr = GetSubstructPtr(0x11); - return &structPtr->unk888; -} - -int MatchCall_MoveCursorUp(void) -{ - struct MatchCallWindowState *structPtr; - structPtr = GetMatchCallWindowStruct(); - - if (structPtr->selectedIndexOffset != 0) - { - structPtr->selectedIndexOffset--; - return 1; - } - else - { - if (ShouldShowUpArrow()) - { - MatchCall_MoveWindow(-1, TRUE); - return 2; - } - else - { - return 0; - } - } -} - -int MatchCall_MoveCursorDown(void) -{ - struct MatchCallWindowState *structPtr; - structPtr = GetMatchCallWindowStruct(); - - if (structPtr->windowTopIndex + structPtr->selectedIndexOffset < structPtr->listLength - 1) - { - if (structPtr->selectedIndexOffset < structPtr->visibleEntries - 1) - { - structPtr->selectedIndexOffset++; - return 1; - } - else if (!ShouldShowDownArrow()) - { - return 0; - } - } - else - { - return 0; - } - MatchCall_MoveWindow(1, TRUE); - return 2; -} - -int MatchCall_PageUp(void) -{ - struct MatchCallWindowState *structPtr; - s32 scroll; - - structPtr = GetMatchCallWindowStruct(); - if (ShouldShowUpArrow()) - { - if (structPtr->windowTopIndex >= structPtr->visibleEntries) - scroll = structPtr->visibleEntries; - else - scroll = structPtr->windowTopIndex; - MatchCall_MoveWindow(scroll * -1, TRUE); - return 2; - } - else if (structPtr->selectedIndexOffset != 0) - { - structPtr->selectedIndexOffset = 0; - return 1; - } - else - { - return 0; - } -} - -int MatchCall_PageDown(void) -{ - struct MatchCallWindowState *structPtr; - structPtr = GetMatchCallWindowStruct(); - - if (ShouldShowDownArrow()) - { - s32 scroll; - s32 windowBottomIndex; - s32 v3; - windowBottomIndex = structPtr->windowTopIndex + structPtr->visibleEntries; - scroll = structPtr->unk4 - structPtr->windowTopIndex; - if (windowBottomIndex <= structPtr->unk4) - scroll = structPtr->visibleEntries; - MatchCall_MoveWindow(scroll, TRUE); - return 2; - } - else - { - s32 cursor; - s32 lastVisibleIndex; - if (structPtr->listLength >= structPtr->visibleEntries) - { - cursor = structPtr->selectedIndexOffset; - lastVisibleIndex = structPtr->visibleEntries; - } - else - { - cursor = structPtr->selectedIndexOffset; - lastVisibleIndex = structPtr->listLength; - } - lastVisibleIndex -= 1; - if (cursor >= lastVisibleIndex) - { - return 0; - } - else - { - structPtr->selectedIndexOffset = lastVisibleIndex; - return 1; - } - } -} - -u32 GetSelectedMatchCall(void) -{ - struct MatchCallWindowState *structPtr; - structPtr = GetMatchCallWindowStruct(); - - return structPtr->windowTopIndex + structPtr->selectedIndexOffset; -} - -u32 GetMatchCallListTopIndex(void) -{ - struct MatchCallWindowState *structPtr; - structPtr = GetMatchCallWindowStruct(); - - return structPtr->windowTopIndex; -} - -void sub_81C877C(void) -{ - struct UnknownSubStruct_81C81D4 *structPtr; - structPtr = GetSubstructPtr(0x11); - structPtr->unk89C = 0; - structPtr->unk8A0 = CreateLoopedTask(LoopedTask_sub_81C8870, 6); -} - -void sub_81C87AC(s16 a0) -{ - u16 temp; - struct UnknownSubStruct_81C81D4 *structPtr; - structPtr = GetSubstructPtr(0x11); - temp = structPtr->unk888.windowTopIndex; - temp += a0; - structPtr->unk888.windowTopIndex = temp; - structPtr->unk89C = 0; - structPtr->unk8A0 = CreateLoopedTask(LoopedTask_sub_81C8958, 6); -} - -void sub_81C87F0(void) -{ - struct UnknownSubStruct_81C81D4 *structPtr; - structPtr = GetSubstructPtr(0x11); - structPtr->unk89C = 0; - structPtr->unk8A0 = CreateLoopedTask(LoopedTask_sub_81C8A28, 6); -} - -bool32 sub_81C8820(void) -{ - struct UnknownSubStruct_81C81D4 *structPtr; - structPtr = GetSubstructPtr(0x11); - return IsLoopedTaskActive(structPtr->unk8A0); -} - -void sub_81C8838(void) -{ - struct UnknownSubStruct_81C81D4 *structPtr; - struct MatchCallWindowState *subStr; - structPtr = GetSubstructPtr(0x11); - subStr = &structPtr->unk888; - structPtr->unk0.unk38(structPtr->unk0.unk0.windowId, subStr->windowTopIndex + subStr->selectedIndexOffset, (structPtr->unk0.unk0.unkA + subStr->selectedIndexOffset) & 0xF); - CopyWindowToVram(structPtr->unk0.unk0.windowId, 1); -} - -u32 LoopedTask_sub_81C8870(s32 a0) -{ - struct UnknownSubStruct_81C81D4 *structPtr; - u16 v1; - u32 v2; - - // Needed to fix a register renaming issue. - register u16* temp asm("r1"); - structPtr = GetSubstructPtr(0x11); - - switch (a0) - { - case 0: - ToggleMatchCallArrows(&structPtr->unk0, 1); - // fall-through - case 1: - if (structPtr->unk89C != structPtr->unk888.selectedIndexOffset) - sub_81C8B70(&structPtr->unk0.unk0, structPtr->unk89C, 1); - - structPtr->unk89C++; - return 0; - case 2: - if (IsDma3ManagerBusyWithBgCopy()) - return 2; - - if (structPtr->unk89C != structPtr->unk888.visibleEntries) - return 6; - - if (structPtr->unk888.selectedIndexOffset != 0) - sub_81C8B70(&structPtr->unk0.unk0, structPtr->unk89C, structPtr->unk888.selectedIndexOffset); - - return 0; - case 3: - if (IsDma3ManagerBusyWithBgCopy()) - return 2; - temp = &structPtr->unk888.selectedIndexOffset; - v1 = *temp; - if (v1 == 0) - return 4; - - MatchCall_MoveWindow(v1, FALSE); - return 0; - case 4: - v2 = sub_81C8630(); - if (v2) - return 2; - - structPtr->unk888.selectedIndexOffset = v2; - return 4; - default: - return 4; - } -} - -u32 LoopedTask_sub_81C8958(s32 a0) -{ - struct UnknownSubStruct_81C81D4 *structPtr; - structPtr = GetSubstructPtr(0x11); - if (IsDma3ManagerBusyWithBgCopy()) - return 2; - - switch (a0) - { - case 0: - sub_81C8CB4(&structPtr->unk888, &structPtr->unk0); - break; - case 1: - PrintMatchCallFieldNames(&structPtr->unk0, 0); - break; - case 2: - sub_81C8E54(&structPtr->unk888, &structPtr->unk0, 0); - break; - case 3: - PrintMatchCallFieldNames(&structPtr->unk0, 1); - break; - case 4: - sub_81C8E54(&structPtr->unk888, &structPtr->unk0, 1); - break; - case 5: - PrintMatchCallFieldNames(&structPtr->unk0, 2); - break; - case 6: - sub_81C8E54(&structPtr->unk888, &structPtr->unk0, 2); - break; - case 7: - sub_81C8E54(&structPtr->unk888, &structPtr->unk0, 3); - break; - default: - return 4; - } - return 0; -} - -u32 LoopedTask_sub_81C8A28(s32 a0) -{ - struct UnknownSubStruct_81C81D4 *structPtr; - struct MatchCallWindowState *subPtr888; - register struct UnknownInnerStruct_81C81D4 *subPtr0 asm("r2"); - s32 v4; - - if (IsDma3ManagerBusyWithBgCopy()) - { - return 2; - } - - structPtr = GetSubstructPtr(0x11); - subPtr888 = &structPtr->unk888; - subPtr0 = &structPtr->unk0; - - switch (a0) - { - default: - return 4; - case 0: - sub_81C8D4C(subPtr888, subPtr0); - return 0; - case 1: - { - s32 v1; - s32 v2; - u32 *v3; - register s32 v4 asm("r5"); - - v3 = &structPtr->unk89C; - v1 = *v3 + 1; - *v3 = v1; - if (v1 < structPtr->unk888.visibleEntries) - { - sub_81C8B70(&subPtr0->unk0, v1, 1); - return 2; - } - - *v3 = 0; - if (subPtr888->listLength <= subPtr888->visibleEntries) - { - register u32 temp asm("r0"); - temp = subPtr888->windowTopIndex; - if (temp == 0) - return 9; - v2 = temp; - } - else - { - register s32 temp asm("r1"); - v2 = subPtr888->windowTopIndex + subPtr888->visibleEntries; - temp = (s32)subPtr888->listLength; - if (v2 <= temp) - return 9; - v2 -= temp; - } - v4 = v2 * -1; - sub_81C8B70(&subPtr0->unk0, v4, v2); - subPtr888->selectedIndexOffset = v2; - *v3 = v4; - return 0; - } - case 2: - MatchCall_MoveWindow(structPtr->unk89C, FALSE); - return 0; - case 3: - if (sub_81C8630()) - return 2; - - structPtr->unk89C = 0; - return 1; - case 4: - sub_81C83AC(subPtr888->unk10, subPtr888->windowTopIndex + structPtr->unk89C, 1, subPtr888->unkC, structPtr->unk89C, &structPtr->unk0); - return 0; - case 5: - if (sub_81C83E0()) - return 2; - - v4 = ++structPtr->unk89C; - if (v4 >= subPtr888->listLength || v4 >= subPtr888->visibleEntries) - return 1; - return 9; - case 6: - ToggleMatchCallArrows(subPtr0, 0); - return 4; - } -} - -void sub_81C8B70(struct UnknownSubSubStruct_0203CF40 *a0, u32 a1, u32 a2) -{ - u8 *v1; - u32 v2; - - v1 = (u8*)GetWindowAttribute(a0->windowId, WINDOW_TILE_DATA); - v2 = a0->unk4 * 64; - - a1 = (a0->unkA + a1) & 0xF; - if ((s32)(a1 + a2) <= 16) - { - CpuFastFill8(PIXEL_FILL(1), v1 + a1 * v2, a2 * v2); - CopyWindowToVram(a0->windowId, 2); - } - else - { - u32 v3; - u32 v4; - - v3 = 16 - a1; - v4 = a2 - v3; - - CpuFastFill8(PIXEL_FILL(1), v1 + a1 * v2, v3 * v2); - CpuFastFill8(PIXEL_FILL(1), v1, v4 * v2); - CopyWindowToVram(a0->windowId, 2); - } - - a2 -= 1; - for (a2; a2 != -1; a1 = (a1 + 1) & 0xF, a2--) - { - sub_81CBD48(a0->windowId, a1); - } - - CopyWindowToVram(a0->windowId, 1); -} - -void sub_81C8C64(struct UnknownSubSubStruct_0203CF40 *a0, u32 a1) -{ - u16 *v1; - register u32 v2 asm("r0"); - u32 v3; - - v1 = (u16*)GetBgTilemapBuffer(GetWindowAttribute(a0->windowId, WINDOW_BG)); - - v1 = &v1[(a0->unkA << 6) + a0->unk2 - 1]; - - if (a1 != 0) - { - v2 = a0->unk1 << 12; - v3 = a0->unk6 + 1; - } - else - { - v2 = a0->unk1 << 12; - v3 = a0->unk6; - } - { - register u16 v5 asm("r1"); - register u32 v6 asm("r0"); - v6 = (v3 | v2); - v6 = v6 << 16; - v5 = v6 >> 16; - v1[0] = v5; - v1[0x20] = v5; - } -} - -void sub_81C8CB4(struct MatchCallWindowState *a0, struct UnknownInnerStruct_81C81D4 *a1) -{ - u8 colors[3]; - - - memcpy(colors, sPokenavColors_0861FBE4, ARRAY_COUNT(sPokenavColors_0861FBE4)); - - a1->unk34(a0->unk10 + a0->unkC * a0->windowTopIndex, a1->unkTextBuffer); - a1->unk38(a1->unk0.windowId, a0->windowTopIndex, a1->unk0.unkA); - FillWindowPixelRect(a1->unk0.windowId, PIXEL_FILL(4), 0, a1->unk0.unkA * 16, a1->unk0.unk4 * 8, 16); - AddTextPrinterParameterized3(a1->unk0.windowId, a1->unk0.fontId, 8, (a1->unk0.unkA * 16) + 1, colors, TEXT_SPEED_FF, a1->unkTextBuffer); - sub_81C8C64(&a1->unk0, 1); - CopyWindowRectToVram(a1->unk0.windowId, 3, 0, a1->unk0.unkA * 2, a1->unk0.unk4, 2); -} - -void sub_81C8D4C(struct MatchCallWindowState *a0, struct UnknownInnerStruct_81C81D4 *a1) -{ - a1->unk34(a0->unk10 + a0->unkC * a0->windowTopIndex, a1->unkTextBuffer); - FillWindowPixelRect(a1->unk0.windowId, PIXEL_FILL(1), 0, a1->unk0.unkA * 16, a1->unk0.unk4 * 8, 16); - AddTextPrinterParameterized(a1->unk0.windowId, a1->unk0.fontId, a1->unkTextBuffer, 8, a1->unk0.unkA * 16 + 1, TEXT_SPEED_FF, NULL); - sub_81C8C64(&a1->unk0, 0); - CopyWindowToVram(a1->unk0.windowId, 3); -} - -void PrintMatchCallFieldNames(struct UnknownInnerStruct_81C81D4 *a0, u32 fieldId) -{ - const u8 *fieldNames[3]; - u8 colors[3]; - u32 r4; - u32 r5; - u32 tmp; - u32 one; - - memcpy(fieldNames, sMatchCallFieldNames, sizeof(sMatchCallFieldNames)); - memcpy(colors, sMatchCallFieldColors, sizeof(sMatchCallFieldColors)); - - r4 = a0->unk0.unkA; - tmp = fieldId * 2 + 1; - r4 += tmp; - r4 &= 0xF; - FillWindowPixelRect(a0->unk0.windowId, PIXEL_FILL(1), 0, r4 << 4, a0->unk0.unk4, 16); - - // This is a fake match. It should be this: - // AddTextPrinterParameterized3(a0->unk0.windowId, 7, 2, r4 << 4 + 1, colors, TEXT_SPEED_FF, fieldNames[fieldId]); - // But the original GCC does some clever reuse of the `1` constant that the current GCC doesn't. - one = 1; - AddTextPrinterParameterized3(a0->unk0.windowId, 7, 2, (r4 << 4) + one, colors, one - 2, fieldNames[fieldId]); - CopyWindowRectToVram(a0->unk0.windowId, 2, 0, r4 << 1, a0->unk0.unk4, 2); -} - -void sub_81C8E54(struct MatchCallWindowState *a0, struct UnknownInnerStruct_81C81D4 *a1, u32 a2) -{ - const u8 *str; - u32 r6; - - r6 = (a1->unk0.unkA + sUnknown_0861FBF7[a2]) & 0xF; - - str = sub_81CAFD8(a0->windowTopIndex, a2); - if (str != NULL) { - sub_81DB620(a1->unk0.windowId, 1, r6 * 2, a1->unk0.unk4 - 1, 2); - AddTextPrinterParameterized(a1->unk0.windowId, 7, str, 2, (r6 << 4) + 1, TEXT_SPEED_FF, NULL); - CopyWindowRectToVram(a1->unk0.windowId, 2, 0, r6 * 2, a1->unk0.unk4, 2); - } -} - void sub_81C8ED0(void) { u32 i; const struct CompressedSpriteSheet *ptr; - + for (i = 0, ptr = sMatchcallArrowSpriteSheets; i < ARRAY_COUNT(sMatchcallArrowSpriteSheets); ptr++, i++) - { LoadCompressedSpriteSheet(ptr); - } + Pokenav_AllocAndLoadPalettes(sMatchcallArrowPalettes); } -void sub_81C8EF8(struct MatchCallWindowState *a0, struct UnknownInnerStruct_81C81D4 *a1) +void sub_81C8EF8(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1) { - register u32 spriteId asm("r3"); - s16 temp; + u32 spriteId; + s16 x; - spriteId = (u8)CreateSprite(&sMatchCallRightArrowSprite, a1->unk0.unk2 * 8 + 3, (a1->unk0.unk3 + 1) * 8, 7); + spriteId = CreateSprite(&sMatchCallRightArrowSprite, a1->unk0.unk2 * 8 + 3, (a1->unk0.unk3 + 1) * 8, 7); a1->rightArrow = &gSprites[spriteId]; - temp = a1->unk0.unk2 * 8 + (a1->unk0.unk4 - 1) * 4; - spriteId = (u8)CreateSprite(&sMatchCallUpDownArrowSprite, temp, a1->unk0.unk3 * 8 + a0->visibleEntries * 16, 7); + x = a1->unk0.unk2 * 8 + (a1->unk0.unk4 - 1) * 4; + spriteId = CreateSprite(&sMatchCallUpDownArrowSprite, x, a1->unk0.unk3 * 8 + a0->visibleEntries * 16, 7); a1->downArrow = &gSprites[spriteId]; a1->downArrow->oam.tileNum += 2; a1->downArrow->callback = SpriteCB_MatchCallDownArrow; - spriteId = (u8)CreateSprite(&sMatchCallUpDownArrowSprite, temp, a1->unk0.unk3 * 8, 7); + spriteId = CreateSprite(&sMatchCallUpDownArrowSprite, x, a1->unk0.unk3 * 8, 7); a1->upArrow = &gSprites[spriteId]; a1->upArrow->oam.tileNum += 4; a1->upArrow->callback = SpriteCB_MatchCallUpArrow; } -void sub_81C8FE0(struct UnknownInnerStruct_81C81D4 *a0) +void sub_81C8FE0(struct PokenavSub17Substruct *a0) { DestroySprite(a0->rightArrow); DestroySprite(a0->upArrow); @@ -1023,7 +857,7 @@ void sub_81C8FE0(struct UnknownInnerStruct_81C81D4 *a0) FreeSpritePaletteByTag(0x14); } -void ToggleMatchCallArrows(struct UnknownInnerStruct_81C81D4 *a0, bool32 shouldHide) +void ToggleMatchCallArrows(struct PokenavSub17Substruct *a0, bool32 shouldHide) { if (shouldHide) { @@ -1044,8 +878,7 @@ void ToggleMatchCallArrows(struct UnknownInnerStruct_81C81D4 *a0, bool32 shouldH void SpriteCB_MatchCallRightArrow(struct Sprite *sprite) { - struct UnknownSubStruct_81C81D4 *structPtr; - structPtr = GetSubstructPtr(0x11); + struct PokenavSub17 *structPtr = GetSubstructPtr(17); sprite->pos2.y = structPtr->unk888.selectedIndexOffset << 4; } @@ -1055,7 +888,7 @@ void SpriteCB_MatchCallDownArrow(struct Sprite *sprite) sprite->invisible = FALSE; else sprite->invisible = TRUE; - + if (++sprite->data[0] > 3) { s16 offset; @@ -1073,7 +906,7 @@ void SpriteCB_MatchCallUpArrow(struct Sprite *sprite) sprite->invisible = FALSE; else sprite->invisible = TRUE; - + if (++sprite->data[0] > 3) { s16 offset; @@ -1087,36 +920,31 @@ void SpriteCB_MatchCallUpArrow(struct Sprite *sprite) void ToggleMatchCallVerticalArrows(bool32 shouldHide) { - struct UnknownSubStruct_81C81D4 *structPtr; - structPtr = GetSubstructPtr(0x11); + struct PokenavSub17 *structPtr = GetSubstructPtr(17); structPtr->unk0.upArrow->data[7] = shouldHide; structPtr->unk0.downArrow->data[7] = shouldHide; } void sub_81C9160(struct MatchCallWindowState *a0, struct MatchCallListTemplate *a1) { - u32 unused1 = a0->unk10 = a1->unk0; - u32 v0 = a1->unk6; - u32 zero = 0; - u32 unused2 = a0->windowTopIndex = v0; - u32 v1 = a0->listLength = a1->unk4; - + a0->unk10 = a1->unk0; + a0->windowTopIndex = a1->unk6; + a0->listLength = a1->unk4; a0->unkC = a1->unk8; a0->visibleEntries = a1->unkC; - if (a0->visibleEntries >= (u16)v1) + if (a0->visibleEntries >= a0->listLength) { a0->windowTopIndex = 0; a0->unk4 = 0; - a0->selectedIndexOffset = v0; + a0->selectedIndexOffset = a1->unk6; } else { - s32 v2; a0->unk4 = a0->listLength - a0->visibleEntries; - v2 = a0->windowTopIndex + a0->visibleEntries; - if (v2 > a0->listLength) { - a0->selectedIndexOffset = v2 - a0->listLength; - a0->windowTopIndex = v0 - a0->selectedIndexOffset; + if (a0->windowTopIndex + a0->visibleEntries > a0->listLength) + { + a0->selectedIndexOffset = a0->windowTopIndex + a0->visibleEntries - a0->listLength; + a0->windowTopIndex = a1->unk6 - a0->selectedIndexOffset; } else { @@ -1125,15 +953,11 @@ void sub_81C9160(struct MatchCallWindowState *a0, struct MatchCallListTemplate * } } -u32 sub_81C91AC(struct UnknownInnerStruct_81C81D4 *a0, const struct BgTemplate *a1, struct MatchCallListTemplate *a2, s32 a3) +bool32 sub_81C91AC(struct PokenavSub17Substruct *a0, const struct BgTemplate *a1, struct MatchCallListTemplate *a2, s32 a3) { - register u32 raw_bg asm("r4") = ((a1->bg) << 30); - u8 bg = raw_bg >> 30; - u32 unknown = 0; struct WindowTemplate window; - u8 bg_again; - a0->unk0.bg = bg; + a0->unk0.bg = a1->bg; a0->unk0.unk6 = a3; a0->unk34 = a2->unk10; a0->unk38 = a2->unk14; @@ -1142,8 +966,8 @@ u32 sub_81C91AC(struct UnknownInnerStruct_81C81D4 *a0, const struct BgTemplate * a0->unk0.unk3 = a2->unkB; a0->unk0.unk4 = a2->unkA; a0->unk0.fontId = a2->unkE; - - window.bg = raw_bg >> 30; + + window.bg = a1->bg; window.tilemapLeft = a2->unk9; window.tilemapTop = 0; window.width = a2->unkA; @@ -1153,15 +977,11 @@ u32 sub_81C91AC(struct UnknownInnerStruct_81C81D4 *a0, const struct BgTemplate * a0->unk0.windowId = AddWindow(&window); if (a0->unk0.windowId == 0xFF) - { - return 0; - } - else - { - a0->unk0.unkA = unknown; - a0->rightArrow = NULL; - a0->upArrow = NULL; - a0->downArrow = NULL; - return 1; - } + return FALSE; + + a0->unk0.unkA = 0; + a0->rightArrow = NULL; + a0->upArrow = NULL; + a0->downArrow = NULL; + return 1; } diff --git a/src/pokenav_unk_1.c b/src/pokenav_unk_1.c index 96ecf9c8b7..b5bbc4b747 100644 --- a/src/pokenav_unk_1.c +++ b/src/pokenav_unk_1.c @@ -55,7 +55,7 @@ static u8 GetPokenavMainMenuType(void) return retVal; } -bool32 sub_81C9298(void) +bool32 PokenavCallback_Init_0(void) { struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct)); if (!state) @@ -69,7 +69,7 @@ bool32 sub_81C9298(void) return TRUE; } -bool32 sub_81C92CC(void) +bool32 PokenavCallback_Init_4(void) { struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct)); if (!state) @@ -83,7 +83,7 @@ bool32 sub_81C92CC(void) return TRUE; } -bool32 sub_81C9304(void) +bool32 PokenavCallback_Init_5(void) { struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct)); if (!state) @@ -96,7 +96,7 @@ bool32 sub_81C9304(void) return TRUE; } -bool32 sub_81C9338(void) +bool32 PokenavCallback_Init_2(void) { struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct)); if (!state) @@ -110,7 +110,7 @@ bool32 sub_81C9338(void) return TRUE; } -bool32 sub_81C9368(void) +bool32 PokenavCallback_Init_3(void) { struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct)); if (!state) @@ -459,7 +459,7 @@ int sub_81C98B4(void) return state->descriptionId; } -int sub_81C98C4(void) +u16 sub_81C98C4(void) { struct Pokenav1Struct *state = GetSubstructPtr(1); return state->helpBarIndex; diff --git a/src/pokenav_unk_10.c b/src/pokenav_unk_10.c index 51dcd3687a..135ff24b3d 100644 --- a/src/pokenav_unk_10.c +++ b/src/pokenav_unk_10.c @@ -158,7 +158,7 @@ static const LoopedTask gUnknown_08624BA0[] = }; // code -bool32 sub_81D0450(void) +bool32 PokenavCallback_Init_13(void) { struct PokenavSub13 *structPtr = AllocSubstruct(13, sizeof(struct PokenavSub13)); if (structPtr == NULL) @@ -235,7 +235,7 @@ u32 sub_81D0548(struct PokenavSub13 *structPtr) u32 sub_81D05D4(struct PokenavSub13 *structPtr) { - return 0x186ae; + return 100014; } bool32 sub_81D05DC(struct PokenavSub13 *structPtr) @@ -472,7 +472,7 @@ bool32 sub_81D0978(void) return TRUE; } -void sub_81D09B0(int id) +void sub_81D09B0(s32 id) { struct PokenavSub14 *structPtr = GetSubstructPtr(14); structPtr->loopedTaskId = CreateLoopedTask(gUnknown_08624BA0[id], 1); diff --git a/src/pokenav_unk_2.c b/src/pokenav_unk_2.c index 60aa5ea5e2..1c40e146fb 100644 --- a/src/pokenav_unk_2.c +++ b/src/pokenav_unk_2.c @@ -1,66 +1,126 @@ #include "global.h" +#include "alloc.h" +#include "decompress.h" #include "bg.h" -#include "gym_leader_rematch.h" +#include "palette.h" +#include "trig.h" +#include "gpu_regs.h" +#include "menu.h" +#include "window.h" #include "pokenav.h" -#include "sprite.h" +#include "graphics.h" +#include "sound.h" +#include "gym_leader_rematch.h" #include "window.h" #include "strings.h" #include "scanline_effect.h" +#include "constants/songs.h" +#include "constants/rgb.h" -extern const u32 gPokenavOptions_Gfx[]; -extern const u16 gPokenavOptions_Pal[]; +// Top Menu -const u16 gUnknown_0861FC78[] = INCBIN_U16("graphics/pokenav/bg.gbapal"); -const u32 gUnknown_0861FC98[] = INCBIN_U32("graphics/pokenav/bg.4bpp.lz"); -const u32 gUnknown_0861FCAC[] = INCBIN_U32("graphics/pokenav/bg.bin.lz"); -const u16 gUnknown_0861FD4C[] = INCBIN_U16("graphics/pokenav/outline.gbapal"); -const u32 gUnknown_0861FD6C[] = INCBIN_U32("graphics/pokenav/outline.4bpp.lz"); -const u32 gUnknown_0861FFF4[] = INCBIN_U32("graphics/pokenav/outline_map.bin.lz"); -const u16 gUnknown_08620104[] = INCBIN_U16("graphics/pokenav/blue_light.gbapal"); -const u32 gUnknown_08620124[] = INCBIN_U32("graphics/pokenav/blue_light.4bpp.lz"); - -const struct BgTemplate gUnknown_08620194[3] = +struct Pokenav2Struct { + bool32 (*callback)(void); + u32 loopedTaskId; + u16 optionDescriptionWindowId; + u8 bg3ScrollTaskId; + u8 cursorPos; + bool8 otherIconsInMotion; + u8 field_00d; + bool32 iconVisible[6]; + struct Sprite * field_028; + struct Sprite * iconSprites[6][4]; + u16 bg1TilemapBuffer[0x400]; +}; + +static struct Pokenav2Struct * sub_81C9958(void); +static bool32 sub_81C99FC(void); +static u32 sub_81C9A10(s32 state); +static u32 sub_81C9C6C(s32 state); +static u32 sub_81C9CA8(s32 state); +static u32 sub_81C9D44(s32 state); +static u32 sub_81C9DD8(s32 state); +static u32 sub_81C9E58(s32 state); +static u32 sub_81C9EC8(s32 state); +static u32 sub_81C9EF8(s32 state); +static u32 sub_81C9F28(s32 state); +static void sub_81C9FC4(void); +static void sub_81C9FEC(void); +static void sub_81CA02C(void); +static void sub_81CA094(void); +static void sub_81CA0C8(void); +static void sub_81CA0EC(const u16 *const * a0, s32 a1, s32 a2); +static void sub_81CA20C(void); +static void sub_81CA278(void); +static void sub_81CA35C(struct Sprite ** sprites, s32 a1, s32 a2, s32 a3); +static void sub_81CA3B4(struct Sprite ** sprites); +static void sub_81CA2DC(void); +static bool32 sub_81CA324(void); +static void sub_81CA448(struct Sprite ** sprites, bool32 a1); +static void sub_81CA474(struct Sprite * sprite); +static void sub_81CA4AC(struct Sprite * sprite); +static void sub_81CA580(u8 taskId); +static void sub_81CA640(void); +static void sub_81CA6AC(struct Sprite * sprite); +static void sub_81CA698(void); +static void sub_81CA6E0(void); +static void sub_81CA714(void); +static void sub_81CA770(void); +static bool32 sub_81CA7C4(void); +static void sub_81CA7D4(void); +static void sub_81CA7F4(void); +static void sub_81CA808(u8 taskId); +static void sub_81CA818(void); +static void sub_81CA850(void); +static void sub_81CA864(void); +static bool32 sub_81CA89C(void); +static void sub_81CA8B0(u8 taskId); +static void sub_81CA92C(void); +static void sub_81CA994(void); +static void sub_81CA9C8(void); +static void sub_81CA9D8(void); +static void sub_81CA9EC(u8 taskId); +static void sub_81CAA3C(void); + +static const u16 gUnknown_0861FC78[] = INCBIN_U16("graphics/pokenav/bg.gbapal"); +static const u32 gUnknown_0861FC98[] = INCBIN_U32("graphics/pokenav/bg.4bpp.lz"); +static const u32 gUnknown_0861FCAC[] = INCBIN_U32("graphics/pokenav/bg.bin.lz"); +static const u16 gUnknown_0861FD4C[] = INCBIN_U16("graphics/pokenav/outline.gbapal"); +static const u32 gUnknown_0861FD6C[] = INCBIN_U32("graphics/pokenav/outline.4bpp.lz"); +static const u32 gUnknown_0861FFF4[] = INCBIN_U32("graphics/pokenav/outline_map.bin.lz"); +static const u16 gUnknown_08620104[] = INCBIN_U16("graphics/pokenav/blue_light.gbapal"); +static const u32 gUnknown_08620124[] = INCBIN_U32("graphics/pokenav/blue_light.4bpp.lz"); + +static const struct BgTemplate gUnknown_08620194[] = { { .bg = 1, .charBaseIndex = 1, - .mapBaseIndex = 0x0F, + .mapBaseIndex = 15, .screenSize = 0, .paletteMode = 0, .priority = 1, - .baseTile = 0 - }, - { + .baseTile = 0x000 + }, { .bg = 2, .charBaseIndex = 2, - .mapBaseIndex = 0x17, + .mapBaseIndex = 23, .screenSize = 0, .paletteMode = 0, .priority = 2, - .baseTile = 0 - }, - { + .baseTile = 0x000 + }, { .bg = 3, .charBaseIndex = 3, - .mapBaseIndex = 0x1F, + .mapBaseIndex = 31, .screenSize = 0, .paletteMode = 0, .priority = 3, - .baseTile = 0 + .baseTile = 0x000 } }; -u32 sub_81C9C6C(s32); -u32 sub_81C9CA8(s32); -u32 sub_81C9D44(s32); -u32 sub_81C9DD8(s32); -u32 sub_81C9E58(s32); -u32 sub_81C9EC8(s32); -u32 sub_81C9EF8(s32); -u32 sub_81C9F28(s32); - -u32 (*const gUnknown_086201A0[])(s32) = -{ +static const LoopedTask gUnknown_086201A0[] = { NULL, sub_81C9C6C, sub_81C9CA8, @@ -72,7 +132,7 @@ u32 (*const gUnknown_086201A0[])(s32) = sub_81C9F28 }; -const struct CompressedSpriteSheet gUnknown_086201C4[] = +static const struct CompressedSpriteSheet gUnknown_086201C4[] = { { .data = gPokenavOptions_Gfx, @@ -86,8 +146,8 @@ const struct CompressedSpriteSheet gUnknown_086201C4[] = } }; - const struct SpritePalette gUnknown_086201D4[] = - { +static const struct SpritePalette gUnknown_086201D4[] = +{ {gPokenavOptions_Pal + 0x00, 4}, {gPokenavOptions_Pal + 0x10, 5}, {gPokenavOptions_Pal + 0x20, 6}, @@ -97,19 +157,19 @@ const struct CompressedSpriteSheet gUnknown_086201C4[] = {} }; -const u16 gUnknown_0862020C[] = {0, 0}; -const u16 gUnknown_08620210[] = {0x20, 1}; -const u16 gUnknown_08620214[] = {0x40, 4}; -const u16 gUnknown_08620218[] = {0x60, 2}; -const u16 gUnknown_0862021C[] = {0x80, 3}; -const u16 gUnknown_08620220[] = {0xA0, 1}; -const u16 gUnknown_08620224[] = {0xC0, 1}; -const u16 gUnknown_08620228[] = {0xE0, 4}; -const u16 gUnknown_0862022C[] = {0x100, 1}; -const u16 gUnknown_08620230[] = {0x120, 2}; -const u16 gUnknown_08620234[] = {0x140, 0}; -const u16 gUnknown_08620238[] = {0x160, 0}; -const u16 gUnknown_0862023C[] = {0x180, 3}; +static const u16 gUnknown_0862020C[] = {0, 0}; +static const u16 gUnknown_08620210[] = {0x20, 1}; +static const u16 gUnknown_08620214[] = {0x40, 4}; +static const u16 gUnknown_08620218[] = {0x60, 2}; +static const u16 gUnknown_0862021C[] = {0x80, 3}; +static const u16 gUnknown_08620220[] = {0xA0, 1}; +static const u16 gUnknown_08620224[] = {0xC0, 1}; +static const u16 gUnknown_08620228[] = {0xE0, 4}; +static const u16 gUnknown_0862022C[] = {0x100, 1}; +static const u16 gUnknown_08620230[] = {0x120, 2}; +static const u16 gUnknown_08620234[] = {0x140, 0}; +static const u16 gUnknown_08620238[] = {0x160, 0}; +static const u16 gUnknown_0862023C[] = {0x180, 3}; struct UnkStruct_08620240 { @@ -118,36 +178,36 @@ struct UnkStruct_08620240 const u16 *unk4[6]; }; -const struct UnkStruct_08620240 gUnknown_08620240[5] = +static const struct UnkStruct_08620240 gUnknown_08620240[5] = { { 0x2A, - 0x14, - {gUnknown_0862020C, gUnknown_08620210, gUnknown_0862021C, NULL, NULL, NULL} + 0x14, + {gUnknown_0862020C, gUnknown_08620210, gUnknown_0862021C} }, { 0x2A, - 0x14, - {gUnknown_0862020C, gUnknown_08620210, gUnknown_08620214, gUnknown_0862021C, NULL, NULL} + 0x14, + {gUnknown_0862020C, gUnknown_08620210, gUnknown_08620214, gUnknown_0862021C} }, { 0x2A, - 0x14, - {gUnknown_0862020C, gUnknown_08620210, gUnknown_08620214, gUnknown_08620218, gUnknown_0862021C, NULL} + 0x14, + {gUnknown_0862020C, gUnknown_08620210, gUnknown_08620214, gUnknown_08620218, gUnknown_0862021C} }, { 0x38, - 0x14, - {gUnknown_08620220, gUnknown_08620224, gUnknown_0862023C, NULL, NULL, NULL} + 0x14, + {gUnknown_08620220, gUnknown_08620224, gUnknown_0862023C} }, { 0x28, - 0x10, - {gUnknown_08620228, gUnknown_0862022C, gUnknown_08620230, gUnknown_08620234, gUnknown_08620238, gUnknown_0862023C} + 0x10, + {gUnknown_08620228, gUnknown_0862022C, gUnknown_08620230, gUnknown_08620234, gUnknown_08620238, gUnknown_0862023C} }, }; -const struct WindowTemplate gUnknown_086202CC = +static const struct WindowTemplate gUnknown_086202CC = { .bg = 1, .tilemapLeft = 3, @@ -158,7 +218,7 @@ const struct WindowTemplate gUnknown_086202CC = .baseBlock = 8 }; -const u8 *const gUnknown_086202D4[] = +static const u8 *const gUnknown_086202D4[] = { gUnknown_085EBCC5, gUnknown_085EBCE8, @@ -176,11 +236,11 @@ const u8 *const gUnknown_086202D4[] = gUnknown_085EBE41 }; -const u8 gUnknown_0862030C[] = {6, 8, 7}; +static const u8 gUnknown_0862030C[] = {6, 8, 7}; -const u8 gUnknown_0862030F[] = {6, 8, 7, 0, 0}; +static const u8 gUnknown_0862030F[] = {6, 8, 7, 0, 0}; -const struct OamData gUnknown_08620314 = +static const struct OamData gUnknown_08620314 = { .y = 0, .affineMode = 0, @@ -194,26 +254,26 @@ const struct OamData gUnknown_08620314 = .paletteNum = 0, }; -const union AffineAnimCmd gUnknown_0862031C[] = +static const union AffineAnimCmd gUnknown_0862031C[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_0862032C[] = +static const union AffineAnimCmd gUnknown_0862032C[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0x12), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08620344[] = +static const union AffineAnimCmd *const gUnknown_08620344[] = { gUnknown_0862031C, - gUnknown_0862032C + gUnknown_0862032C }; -const struct SpriteTemplate gUnknown_0862034C = +static const struct SpriteTemplate gUnknown_0862034C = { .tileTag = 3, .paletteTag = 4, @@ -224,7 +284,7 @@ const struct SpriteTemplate gUnknown_0862034C = .callback = SpriteCallbackDummy, }; -const struct OamData gUnknown_08620364 = +static const struct OamData gUnknown_08620364 = { .y = 0, .affineMode = 0, @@ -238,7 +298,7 @@ const struct OamData gUnknown_08620364 = .paletteNum = 0, }; -const struct SpriteTemplate gUnknown_0862036C = +static const struct SpriteTemplate gUnknown_0862036C = { .tileTag = 1, .paletteTag = 3, @@ -249,25 +309,967 @@ const struct SpriteTemplate gUnknown_0862036C = .callback = SpriteCallbackDummy, }; -const struct ScanlineEffectParams gUnknown_08620384 = +static const struct ScanlineEffectParams gUnknown_08620384 = { (void *)REG_ADDR_WIN0H, - ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1, - 1, - 0 + ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1, + 1, + 0 }; -bool32 sub_81C98D4(void) +static bool32 sub_81C98D4(void) { s32 i; for (i = 0; i < REMATCH_TABLE_ENTRIES; i++) { if (sub_81CB0C8(i) == gMapHeader.regionMapSectionId - && sub_81CAE08(i) - && gSaveBlock1Ptr->trainerRematches[i]) + && sub_81CAE08(i) + && gSaveBlock1Ptr->trainerRematches[i]) return TRUE; } return FALSE; } + +bool32 sub_81C9924(void) +{ + struct Pokenav2Struct * unk = sub_81C9958(); + + if (unk == NULL) + return FALSE; + + unk->field_00d = 0; + return TRUE; +} + +bool32 sub_81C9940(void) +{ + struct Pokenav2Struct * unk = sub_81C9958(); + + if (unk == NULL) + return FALSE; + + unk->field_00d = 1; + return TRUE; +} + +static struct Pokenav2Struct * sub_81C9958(void) +{ + struct Pokenav2Struct * unk = AllocSubstruct(2, sizeof(struct Pokenav2Struct)); + + if (unk != NULL) + { + unk->otherIconsInMotion = FALSE; + unk->loopedTaskId = CreateLoopedTask(sub_81C9A10, 1); + unk->callback = sub_81C99FC; + } + + return unk; +} + + +void sub_81C9990(s32 ltIdx) +{ + struct Pokenav2Struct * unk = GetSubstructPtr(2); + + unk->loopedTaskId = CreateLoopedTask(gUnknown_086201A0[ltIdx], 1); + unk->callback = sub_81C99FC; +} + +bool32 sub_81C99C0(void) +{ + struct Pokenav2Struct * unk = GetSubstructPtr(2); + + return unk->callback(); +} + +void sub_81C99D4(void) +{ + struct Pokenav2Struct * unk = GetSubstructPtr(2); + + sub_81CA7F4(); + RemoveWindow(unk->optionDescriptionWindowId); + sub_81C9FEC(); + sub_81CA994(); + FreePokenavSubstruct(2); +} + +static bool32 sub_81C99FC(void) +{ + struct Pokenav2Struct * unk = GetSubstructPtr(2); + + return IsLoopedTaskActive(unk->loopedTaskId); +} + +static u32 sub_81C9A10(s32 state) +{ + struct Pokenav2Struct * unk = GetSubstructPtr(2); + + switch (state) + { + case 0: + InitBgTemplates(gUnknown_08620194, ARRAY_COUNT(gUnknown_08620194)); + decompress_and_copy_tile_data_to_vram(1, gPokenavMessageBox_Gfx, 0, 0, 0); + SetBgTilemapBuffer(1, unk->bg1TilemapBuffer); + CopyToBgTilemapBuffer(1, gPokenavMessageBox_Tilemap, 0, 0); + CopyBgTilemapBufferToVram(1); + CopyPaletteIntoBufferUnfaded(gPokenavMessageBox_Pal, 0x10, 0x20); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0, 0); + return LT_INC_AND_PAUSE; + case 1: + if (free_temp_tile_data_buffers_if_possible()) + return LT_PAUSE; + decompress_and_copy_tile_data_to_vram(2, gUnknown_0861FD6C, 0, 0, 0); + decompress_and_copy_tile_data_to_vram(2, gUnknown_0861FFF4, 0, 0, 1); + CopyPaletteIntoBufferUnfaded(gUnknown_0861FD4C, 0x20, 0x20); + return LT_INC_AND_PAUSE; + case 2: + if (free_temp_tile_data_buffers_if_possible()) + return LT_PAUSE; + decompress_and_copy_tile_data_to_vram(3, gUnknown_0861FC98, 0, 0, 0); + decompress_and_copy_tile_data_to_vram(3, gUnknown_0861FCAC, 0, 0, 1); + CopyPaletteIntoBufferUnfaded(gUnknown_0861FC78, 0x30, 0x20); + if (sub_81C9894() == 3 || sub_81C9894() == 4) + sub_81CA850(); + return LT_INC_AND_PAUSE; + case 3: + if (free_temp_tile_data_buffers_if_possible()) + return LT_PAUSE; + sub_81CA6E0(); + sub_81CA7D4(); + return LT_INC_AND_CONTINUE; + case 4: + sub_81C9FC4(); + return LT_INC_AND_CONTINUE; + case 5: + sub_81CA714(); + sub_81CA02C(); + sub_81CA640(); + sub_81CA0C8(); + return LT_INC_AND_PAUSE; + case 6: + if (sub_81CA7C4()) + return LT_PAUSE; + return LT_INC_AND_CONTINUE; + case 7: + ShowBg(1); + ShowBg(2); + ShowBg(3); + if (unk->field_00d) + sub_81C7AC0(1); + else + { + PlaySE(SE_PN_ON); + sub_81C7AC0(3); + } + switch (sub_81C9894()) + { + case 4: + LoadLeftHeaderGfxForIndex(7); + // fallthrough + case 3: + LoadLeftHeaderGfxForIndex(1); + break; + default: + LoadLeftHeaderGfxForIndex(0); + break; + } + return LT_INC_AND_PAUSE; + case 8: + if (IsPaletteFadeActive()) + return LT_PAUSE; + switch (sub_81C9894()) + { + case 4: + sub_81C7FA0(7, FALSE, FALSE); + // fallthrough + case 3: + sub_81C7FA0(1, FALSE, FALSE); + break; + default: + sub_81C7FA0(0, FALSE, FALSE); + break; + } + sub_81CA20C(); + sub_81CA92C(); + return LT_INC_AND_CONTINUE; + case 9: + if (sub_81CA324()) + return LT_PAUSE; + if (sub_81C8010()) + return LT_PAUSE; + break; + } + return LT_FINISH; +} + +static u32 sub_81C9C6C(s32 state) +{ + switch (state) + { + case 0: + sub_81CAA3C(); + sub_81CA278(); + sub_81CA714(); + PlaySE(SE_SELECT); + return LT_INC_AND_PAUSE; + case 1: + if (sub_81CA324()) + return LT_PAUSE; + if (sub_81CA7C4()) + return LT_PAUSE; + break; + } + return LT_FINISH; +} + +static u32 sub_81C9CA8(s32 state) +{ + switch (state) + { + case 0: + sub_81CA9C8(); + sub_81CA2DC(); + sub_81C7FC4(0, 0); + PlaySE(SE_SELECT); + return LT_INC_AND_PAUSE; + case 1: + if (sub_81CA324()) + return LT_PAUSE; + if (sub_81C8010()) + return LT_PAUSE; + sub_81CA0C8(); + LoadLeftHeaderGfxForIndex(1); + return LT_INC_AND_PAUSE; + case 2: + sub_81CA20C(); + sub_81C7FA0(1, FALSE, FALSE); + sub_81CA818(); + sub_81CA714(); + return LT_INC_AND_PAUSE; + case 3: + if (sub_81CA324()) + return LT_PAUSE; + if (sub_81C8010()) + return LT_PAUSE; + if (sub_81CA89C()) + return LT_PAUSE; + if (sub_81CA7C4()) + return LT_PAUSE; + sub_81CA9D8(); + break; + } + return LT_FINISH; +} + +static u32 sub_81C9D44(s32 state) +{ + switch (state) + { + case 0: + sub_81CA9C8(); + sub_81CA2DC(); + sub_81C7FC4(1, 0); + return LT_INC_AND_PAUSE; + case 1: + if (sub_81CA324()) + return LT_PAUSE; + if (sub_81C8010()) + return LT_PAUSE; + sub_81CA0C8(); + LoadLeftHeaderGfxForIndex(0); + return LT_INC_AND_PAUSE; + case 2: + sub_81CA20C(); + sub_81C7FA0(0, FALSE, FALSE); + sub_81CA864(); + sub_81CA714(); + return LT_INC_AND_PAUSE; + case 3: + if (sub_81CA324()) + return LT_PAUSE; + if (sub_81C8010()) + return LT_PAUSE; + if (sub_81CA89C()) + return LT_PAUSE; + if (sub_81CA7C4()) + return LT_PAUSE; + sub_81CA9D8(); + break; + } + return LT_FINISH; +} + +static u32 sub_81C9DD8(s32 state) +{ + switch (state) + { + case 0: + sub_81CA9C8(); + sub_81CA2DC(); + PlaySE(SE_SELECT); + return LT_INC_AND_PAUSE; + case 1: + if (sub_81CA324()) + return LT_PAUSE; + LoadLeftHeaderGfxForIndex(7); + sub_81CA0C8(); + return LT_INC_AND_PAUSE; + case 2: + sub_81CA20C(); + sub_81C7FA0(7, FALSE, FALSE); + sub_81CA714(); + return LT_INC_AND_PAUSE; + case 3: + if (sub_81CA324()) + return LT_PAUSE; + if (sub_81C8010()) + return LT_PAUSE; + if (sub_81CA89C()) + return LT_PAUSE; + sub_81CA9D8(); + break; + } + return LT_FINISH; +} + +static u32 sub_81C9E58(s32 state) +{ + switch (state) + { + case 0: + sub_81CA9C8(); + sub_81CA2DC(); + sub_81C7FC4(7, 0); + return LT_INC_AND_PAUSE; + case 1: + if (sub_81CA324()) + return LT_PAUSE; + if (sub_81C8010()) + return LT_PAUSE; + sub_81CA0C8(); + return LT_INC_AND_PAUSE; + case 2: + sub_81CA20C(); + sub_81CA714(); + return LT_INC_AND_PAUSE; + case 3: + if (sub_81CA324()) + return LT_PAUSE; + if (sub_81CA89C()) + return LT_PAUSE; + sub_81CA9D8(); + break; + } + return LT_FINISH; +} + +static u32 sub_81C9EC8(s32 state) +{ + switch (state) + { + case 0: + PlaySE(SE_HAZURE); + sub_81CA770(); + return LT_INC_AND_PAUSE; + case 1: + if (IsDma3ManagerBusyWithBgCopy()) + return LT_PAUSE; + break; + } + return LT_FINISH; +} + +static u32 sub_81C9EF8(s32 state) +{ + switch (state) + { + case 0: + PlaySE(SE_SELECT); + sub_81CA714(); + return LT_INC_AND_PAUSE; + case 1: + if (IsDma3ManagerBusyWithBgCopy()) + return LT_PAUSE; + break; + } + return LT_FINISH; +} + +static u32 sub_81C9F28(s32 state) +{ + switch (state) + { + case 0: + sub_81C7BA4(sub_81C98C4()); + return LT_INC_AND_PAUSE; + case 1: + if (IsDma3ManagerBusyWithBgCopy_()) + return LT_PAUSE; + sub_81C7880(); + sub_81CA9C8(); + sub_81CA2DC(); + switch (sub_81C9894()) + { + case 4: + sub_81C7FC4(7, FALSE); + // fallthrough + case 3: + sub_81C7FC4(1, FALSE); + break; + default: + sub_81C7FC4(0, FALSE); + break; + } + PlaySE(SE_SELECT); + return LT_INC_AND_PAUSE; + case 2: + if (sub_81CA324()) + return LT_PAUSE; + if (sub_81C8010()) + return LT_PAUSE; + sub_81C7AC0(0); + return LT_INC_AND_PAUSE; + case 3: + if (IsPaletteFadeActive()) + return LT_PAUSE; + break; + } + return LT_FINISH; +} + +static void sub_81C9FC4(void) +{ + s32 i; + + for (i = 0; i < NELEMS(gUnknown_086201C4); i++) + LoadCompressedSpriteSheet(&gUnknown_086201C4[i]); + Pokenav_AllocAndLoadPalettes(gUnknown_086201D4); +} + +static void sub_81C9FEC(void) +{ + FreeSpriteTilesByTag(3); + FreeSpriteTilesByTag(1); + FreeSpritePaletteByTag(4); + FreeSpritePaletteByTag(5); + FreeSpritePaletteByTag(6); + FreeSpritePaletteByTag(7); + FreeSpritePaletteByTag(8); + FreeSpritePaletteByTag(3); + sub_81CA094(); + sub_81CA698(); +} + +static void sub_81CA02C(void) +{ + s32 i, j; + struct Pokenav2Struct * unk = GetSubstructPtr(2); + + for (i = 0; i < 6; i++) + { + for (j = 0; j < 4; j++) + { + u8 spriteId = CreateSprite(&gUnknown_0862034C, 0x8c, 20 * i + 40, 3); + unk->iconSprites[i][j] = &gSprites[spriteId]; + gSprites[spriteId].pos2.x = 32 * j; + } + } +} + +static void sub_81CA094(void) +{ + s32 i, j; + struct Pokenav2Struct * unk = GetSubstructPtr(2); + + for (i = 0; i < 6; i++) + { + for (j = 0; j < 4; j++) + { + FreeSpriteOamMatrix(unk->iconSprites[i][j]); + DestroySprite(unk->iconSprites[i][j]); + } + } +} + +static void sub_81CA0C8(void) +{ + s32 r0 = sub_81C9894(); + sub_81CA0EC(gUnknown_08620240[r0].unk4, gUnknown_08620240[r0].unk0, gUnknown_08620240[r0].unk2); +} + +static void sub_81CA0EC(const u16 *const *a0, s32 a1, s32 a2) +{ + s32 i, j; + struct Pokenav2Struct * unk = GetSubstructPtr(2); + s32 sp04 = GetSpriteTileStartByTag(3); + + for (i = 0; i < 6; i++) + { + if (*a0 != NULL) + { + for (j = 0; j < 4; j++) + { + unk->iconSprites[i][j]->oam.tileNum = (*a0)[0] + sp04 + 8 * j; + unk->iconSprites[i][j]->oam.paletteNum = IndexOfSpritePaletteTag((*a0)[1] + 4); + unk->iconSprites[i][j]->invisible = TRUE; + unk->iconSprites[i][j]->pos1.y = a1; + unk->iconSprites[i][j]->pos1.x = 0x8c; + unk->iconSprites[i][j]->pos2.x = 32 * j; + } + unk->iconVisible[i] = TRUE; + } + else + { + for (j = 0; j < 4; j++) + { + unk->iconSprites[i][j]->invisible = TRUE; + } + unk->iconVisible[i] = FALSE; + } + a0++; + a1 += a2; + } +} + +static void sub_81CA20C(void) +{ + s32 i; + struct Pokenav2Struct * unk = GetSubstructPtr(2); + s32 r8 = sub_81C98A4(); + s32 r7 = 0; + s32 r2; + + for (i = 0; i < 6; i++) + { + if (unk->iconVisible[i]) + { + if (r7++ == r8) + { + r2 = 0x82; + unk->cursorPos = i; + } + else + r2 = 0x8c; + sub_81CA35C(unk->iconSprites[i], 0x100, r2, 0xC); + sub_81CA448(unk->iconSprites[i], FALSE); + } + else + sub_81CA448(unk->iconSprites[i], TRUE); + } +} + +static void sub_81CA278(void) +{ + s32 i; + struct Pokenav2Struct * unk = GetSubstructPtr(2); + s32 r3 = sub_81C98A4(); + s32 r5; + + for (i = 0, r5 = 0; i < 6; i++) + { + if (unk->iconVisible[i]) + { + if (r5 == r3) + { + r5 = i; + break; + } + r5++; + } + } + + sub_81CA35C(unk->iconSprites[unk->cursorPos], 0x82, 0x8c, 0x4); + sub_81CA35C(unk->iconSprites[r5], 0x8c, 0x82, 0x4); + unk->cursorPos = r5; +} + +static void sub_81CA2DC(void) +{ + s32 i; + struct Pokenav2Struct * unk = GetSubstructPtr(2); + + for (i = 0; i < 6; i++) + { + if (unk->iconVisible[i]) + { + if (unk->cursorPos != i) + sub_81CA35C(unk->iconSprites[i], 0x8C, 0x100, 0x8); + else + sub_81CA3B4(unk->iconSprites[i]); + } + } +} + +static bool32 sub_81CA324(void) +{ + s32 i; + struct Pokenav2Struct * unk = GetSubstructPtr(2); + + for (i = 0; i < 6; i++) + { + if (unk->iconSprites[i][0]->callback != SpriteCallbackDummy) + return TRUE; + } + + if (unk->otherIconsInMotion) + return TRUE; + + return FALSE; +} + +static void sub_81CA35C(struct Sprite ** sprites, s32 a1, s32 a2, s32 a3) +{ + s32 i; + + for (i = 0; i < 4; i++) + { + (*sprites)->pos1.x = a1; + (*sprites)->data[0] = a3; + (*sprites)->data[1] = 16 * (a2 - a1) / a3; + (*sprites)->data[2] = 16 * a1; + (*sprites)->data[7] = a2; + (*sprites)->callback = sub_81CA474; + sprites++; + } +} + +static void sub_81CA3B4(struct Sprite ** sprites) +{ + s32 i; + struct Pokenav2Struct * unk = GetSubstructPtr(2); + u8 taskId; + + for (i = 0; i < 4; i++) + { + (*sprites)->oam.objMode = ST_OAM_OBJ_BLEND; + (*sprites)->oam.affineMode = ST_OAM_AFFINE_DOUBLE; + (*sprites)->callback = sub_81CA4AC; + (*sprites)->data[0] = 8; + (*sprites)->data[1] = 0; + (*sprites)->data[7] = i; + InitSpriteAffineAnim(sprites[0]); + StartSpriteAffineAnim(sprites[0], 0); + sprites++; + } + + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0x10, 0x00)); + taskId = CreateTask(sub_81CA580, 3); + gTasks[taskId].data[0] = 8; + unk->otherIconsInMotion++; +} + +static void sub_81CA448(struct Sprite ** sprites, bool32 a1) +{ + s32 i; + + for (i = 0; i < 4; i++) + { + (*sprites)->invisible = a1; + sprites++; + } +} + +static void sub_81CA474(struct Sprite * sprite) +{ + sprite->data[0]--; + if (sprite->data[0] != -1) + { + sprite->data[2] += sprite->data[1]; + sprite->pos1.x = sprite->data[2] >> 4; + } + else + { + sprite->pos1.x = sprite->data[7]; + sprite->callback = SpriteCallbackDummy; + } +} + +static void sub_81CA4AC(struct Sprite * sprite) +{ + s32 r0; + s32 r1; + if (sprite->data[0] == 0) + { + if (sprite->data[1] == 0) + { + StartSpriteAffineAnim(sprite, 1); + sprite->data[1]++; + sprite->data[2] = 0x100; + sprite->pos1.x += sprite->pos2.x; + sprite->pos2.x = 0; + } + else + { + sprite->data[2] += 16; + r0 = sprite->data[2]; + r1 = r0 >> 3; + r1 = (r1 - 32) / 2; + switch (sprite->data[7]) + { + case 0: + sprite->pos2.x = -r1 * 3; + break; + case 1: + sprite->pos2.x = -r1; + break; + case 2: + sprite->pos2.x = r1; + break; + case 3: + sprite->pos2.x = r1 * 3; + break; + } + if (sprite->affineAnimEnded) + { + sprite->invisible = TRUE; + FreeOamMatrix(sprite->oam.matrixNum); + CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, 0); + sprite->oam.affineMode = ST_OAM_AFFINE_OFF; + sprite->oam.objMode = ST_OAM_OBJ_NORMAL; + sprite->callback = SpriteCallbackDummy; + } + } + } + else + { + sprite->data[0]--; + } +} + +static void sub_81CA580(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (data[0] == 0) + { + switch (data[1]) + { + case 0: + data[2] = 16; + data[3] = 0; + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_NONE | BLDCNT_TGT2_ALL); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0x10, 0x00)); + data[1]++; + break; + case 1: + if (data[4] & 1) + { + data[2] -= 3; + if (data[2] < 0) + data[2] = 0; + } + else + { + data[3] += 3; + if (data[3] > 16) + data[3] = 16; + } + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(data[2], data[3])); + data[4]++; + if (data[4] == 12) + { + ((struct Pokenav2Struct *)GetSubstructPtr(2))->otherIconsInMotion--; + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0x00, 0x10)); + DestroyTask(taskId); + } + break; + } + } + else + data[0]--; +} + +static void sub_81CA640(void) +{ + struct Pokenav2Struct * ptr = GetSubstructPtr(2); + u8 spriteId = CreateSprite(&gUnknown_0862036C, 0x10, 0x60, 4); + ptr->field_028 = &gSprites[spriteId]; + if (sub_81C98D4()) + ptr->field_028->callback = sub_81CA6AC; + else + ptr->field_028->invisible = TRUE; +} + +static void sub_81CA698(void) +{ + struct Pokenav2Struct * ptr = GetSubstructPtr(2); + DestroySprite(ptr->field_028); +} + +static void sub_81CA6AC(struct Sprite * sprite) +{ + sprite->data[0]++; + if (sprite->data[0] > 8) + { + sprite->data[0] = 0; + sprite->invisible ^= 1; + } +} + +static void sub_81CA6E0(void) +{ + struct Pokenav2Struct * ptr = GetSubstructPtr(2); + + ptr->optionDescriptionWindowId = AddWindow(&gUnknown_086202CC); + PutWindowTilemap(ptr->optionDescriptionWindowId); + FillWindowPixelBuffer(ptr->optionDescriptionWindowId, PIXEL_FILL(6)); + CopyWindowToVram(ptr->optionDescriptionWindowId, 3); +} + +static void sub_81CA714(void) +{ + struct Pokenav2Struct * ptr = GetSubstructPtr(2); + int i = sub_81C98B4(); + const u8 * s = gUnknown_086202D4[i]; + u32 width = GetStringWidth(1, s, -1); + FillWindowPixelBuffer(ptr->optionDescriptionWindowId, PIXEL_FILL(6)); + AddTextPrinterParameterized3(ptr->optionDescriptionWindowId, 1, (192 - width) / 2, 1, gUnknown_0862030C, 0, s); +} + + +static void sub_81CA770(void) +{ + struct Pokenav2Struct * ptr = GetSubstructPtr(2); + const u8 * s = gText_NoRibbonWinners; + u32 width = GetStringWidth(1, s, -1); + FillWindowPixelBuffer(ptr->optionDescriptionWindowId, PIXEL_FILL(6)); + AddTextPrinterParameterized3(ptr->optionDescriptionWindowId, 1, (192 - width) / 2, 1, gUnknown_0862030F, 0, s); +} + +static bool32 sub_81CA7C4(void) +{ + return IsDma3ManagerBusyWithBgCopy(); +} + +static void sub_81CA7D4(void) +{ + struct Pokenav2Struct * ptr = GetSubstructPtr(2); + ptr->bg3ScrollTaskId = CreateTask(sub_81CA808, 2); +} + +static void sub_81CA7F4(void) +{ + struct Pokenav2Struct * ptr = GetSubstructPtr(2); + DestroyTask(ptr->bg3ScrollTaskId); +} + +static void sub_81CA808(u8 taskId) +{ + ChangeBgX(3, 0x80, 1); +} + +static void sub_81CA818(void) +{ + u8 taskId = CreateTask(sub_81CA8B0, 3); + SetWordTaskArg(taskId, 1, (uintptr_t)(gUnknown_0861FC78 + 1)); + SetWordTaskArg(taskId, 3, (uintptr_t)(gUnknown_0861FC78 + 7)); +} + +static void sub_81CA850(void) +{ + CopyPaletteIntoBufferUnfaded(gUnknown_0861FC78 + 7, 0x31, 4); +} + +static void sub_81CA864(void) +{ + u8 taskId = CreateTask(sub_81CA8B0, 3); + SetWordTaskArg(taskId, 1, (uintptr_t)(gUnknown_0861FC78 + 7)); + SetWordTaskArg(taskId, 3, (uintptr_t)(gUnknown_0861FC78 + 1)); +} + +static bool32 sub_81CA89C(void) +{ + return FuncIsActiveTask(sub_81CA8B0); +} + +static void sub_81CA8B0(u8 taskId) +{ + u16 sp8[2]; + s16 * data = gTasks[taskId].data; + const u16 * pal1 = (const u16 *)GetWordTaskArg(taskId, 1); + const u16 * pal2 = (const u16 *)GetWordTaskArg(taskId, 3); + + sub_81C79BC(pal1, pal2, 2, 12, ++data[0], sp8); + LoadPalette(sp8, 0x31, 4); + if (data[0] == 12) + DestroyTask(taskId); +} + +static void sub_81CA914(void) +{ + TransferPlttBuffer(); + LoadOam(); + ProcessSpriteCopyRequests(); + ScanlineEffect_InitHBlankDmaTransfer(); +} + +static void sub_81CA92C(void) +{ + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_OBJ | BLDCNT_EFFECT_LIGHTEN); + SetGpuReg(REG_OFFSET_BLDY, 0); + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + SetGpuRegBits(REG_OFFSET_WININ, 0x3F); + SetGpuRegBits(REG_OFFSET_WINOUT, 0x1F); + SetGpuRegBits(REG_OFFSET_WIN0V, 0xA0); + ScanlineEffect_Stop(); + sub_81CAA3C(); + ScanlineEffect_SetParams(gUnknown_08620384); + SetVBlankCallback_(sub_81CA914); + CreateTask(sub_81CA9EC, 3); +} + +static void sub_81CA994(void) +{ + SetGpuReg(REG_OFFSET_BLDCNT, 0); + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + ScanlineEffect_Stop(); + DestroyTask(FindTaskIdByFunc(sub_81CA9EC)); + SetPokenavVBlankCallback(); +} + +static void sub_81CA9C8(void) +{ + SetGpuReg(REG_OFFSET_BLDCNT, 0); +} + +static void sub_81CA9D8(void) +{ + sub_81CAA3C(); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_OBJ | BLDCNT_EFFECT_LIGHTEN); +} + +static void sub_81CA9EC(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + data[0]++; + if (data[0] > 0) + { + data[0] = 0; + data[1] += 3; + data[1] &= 0x7F; + SetGpuReg(REG_OFFSET_BLDY, gSineTable[data[1]] >> 5); + } +} + +static void sub_81CAA3C(void) +{ + int i = sub_81C9894(); + int j = sub_81C98A4(); + int r4 = gUnknown_08620240[i].unk2 * j + gUnknown_08620240[i].unk0 - 8; + CpuFill16(0, gScanlineEffectRegBuffers[0], 0x140); + CpuFill16(0, gScanlineEffectRegBuffers[1], 0x140); + CpuFill16(RGB(16, 23, 28), &gScanlineEffectRegBuffers[0][r4], 0x20); + CpuFill16(RGB(16, 23, 28), &gScanlineEffectRegBuffers[1][r4], 0x20); +} + +void sub_81CAADC(void) +{ + sub_81CA9C8(); +} diff --git a/src/pokenav_unk_3.c b/src/pokenav_unk_3.c index 9b62bea780..ffb1e0a4a5 100755 --- a/src/pokenav_unk_3.c +++ b/src/pokenav_unk_3.c @@ -26,7 +26,7 @@ struct Pokenav3Struct u32 unk10; u32 unk14; u32 (*callback)(struct Pokenav3Struct*); - struct Pokenav3Struct_Unk1C unk1C[99]; + struct PokenavMonList unk1C[99]; }; static u32 sub_81CAB44(struct Pokenav3Struct *); @@ -42,7 +42,7 @@ static bool32 sub_81CB1D0(void); const u8 gUnknown_08622508[] = {0, 2}; const u8 gUnknown_0862250A[] = {0, 1, 2}; -bool32 sub_81CAAE8(void) +bool32 PokenavCallback_Init_11(void) { struct Pokenav3Struct *state = AllocSubstruct(5, sizeof(struct Pokenav3Struct)); if (!state) @@ -84,7 +84,7 @@ static u32 sub_81CAB44(struct Pokenav3Struct *state) state->callback = sub_81CAC04; state->unk0 = 0; selectedMatchCall = GetSelectedMatchCall(); - if (!state->unk1C[selectedMatchCall].unk0 || sub_81D17E8(state->unk1C[selectedMatchCall].unk2)) + if (!state->unk1C[selectedMatchCall].boxId || sub_81D17E8(state->unk1C[selectedMatchCall].unk6)) { state->unk4 = gUnknown_0862250A; state->unk2 = 2; @@ -206,9 +206,9 @@ static u32 sub_81CAD20(s32 taskState) { if (MatchCallFlagGetByIndex(j)) { - state->unk1C[state->unkA].unk2 = j; - state->unk1C[state->unkA].unk0 = 1; - state->unk1C[state->unkA].unk1 = MatchCallMapSecGetByIndex(j); + state->unk1C[state->unkA].unk6 = j; + state->unk1C[state->unkA].boxId = 1; + state->unk1C[state->unkA].monId = MatchCallMapSecGetByIndex(j); state->unkA++; } @@ -226,9 +226,9 @@ static u32 sub_81CAD20(s32 taskState) { if (!sub_81D1BF8(state->unk8) && sub_81CAE08(state->unk8)) { - state->unk1C[state->unkA].unk2 = state->unk8; - state->unk1C[state->unkA].unk0 = 0; - state->unk1C[state->unkA].unk1 = sub_81CB0C8(j); + state->unk1C[state->unkA].unk6 = state->unk8; + state->unk1C[state->unkA].boxId = 0; + state->unk1C[state->unkA].monId = sub_81CB0C8(j); state->unkA++; } @@ -284,10 +284,10 @@ int unref_sub_81CAE6C(int arg0) if (arg0 >= state->unkA) return REMATCH_TABLE_ENTRIES; - return state->unk1C[arg0].unk2; + return state->unk1C[arg0].unk6; } -struct Pokenav3Struct_Unk1C *sub_81CAE94(void) +struct PokenavMonList *sub_81CAE94(void) { struct Pokenav3Struct *state = GetSubstructPtr(5); return state->unk1C; @@ -296,16 +296,16 @@ struct Pokenav3Struct_Unk1C *sub_81CAE94(void) u16 sub_81CAEA4(int index) { struct Pokenav3Struct *state = GetSubstructPtr(5); - return state->unk1C[index].unk1; + return state->unk1C[index].monId; } bool32 sub_81CAEBC(int index) { struct Pokenav3Struct *state = GetSubstructPtr(5); - if (!state->unk1C[index].unk0) - index = state->unk1C[index].unk2; + if (!state->unk1C[index].boxId) + index = state->unk1C[index].unk6; else - index = MatchCall_GetRematchTableIdx(state->unk1C[index].unk2); + index = MatchCall_GetRematchTableIdx(state->unk1C[index].unk6); if (index == REMATCH_TABLE_ENTRIES) return FALSE; @@ -317,13 +317,13 @@ int sub_81CAF04(int index) { int var0; struct Pokenav3Struct *state = GetSubstructPtr(5); - if (!state->unk1C[index].unk0) + if (!state->unk1C[index].boxId) { - index = GetTrainerIdxByRematchIdx(state->unk1C[index].unk2); + index = GetTrainerIdxByRematchIdx(state->unk1C[index].unk6); return gTrainers[index].trainerPic; } - var0 = state->unk1C[index].unk2; + var0 = state->unk1C[index].unk6; index = MatchCall_GetRematchTableIdx(var0); if (index != REMATCH_TABLE_ENTRIES) { @@ -342,10 +342,10 @@ const u8 *sub_81CAF78(int index, u8 *arg1) if (!Overworld_MapTypeAllowsTeleportAndFly(gMapHeader.mapType)) return gText_CallCantBeMadeHere; - if (!state->unk1C[index].unk0) - *arg1 = SelectMatchCallMessage(GetTrainerIdxByRematchIdx(state->unk1C[index].unk2), gStringVar4); + if (!state->unk1C[index].boxId) + *arg1 = SelectMatchCallMessage(GetTrainerIdxByRematchIdx(state->unk1C[index].unk6), gStringVar4); else - MatchCall_GetMessage(state->unk1C[index].unk2, gStringVar4); + MatchCall_GetMessage(state->unk1C[index].unk6, gStringVar4); return gStringVar4; } @@ -354,15 +354,15 @@ const u8 *sub_81CAFD8(int index, int textType) { int var0; struct Pokenav3Struct *state = GetSubstructPtr(5); - if (state->unk1C[index].unk0) + if (state->unk1C[index].boxId) { - var0 = MatchCall_GetRematchTableIdx(state->unk1C[index].unk2); + var0 = MatchCall_GetRematchTableIdx(state->unk1C[index].unk6); if (var0 == REMATCH_TABLE_ENTRIES) - return sub_81D1B40(state->unk1C[index].unk2, textType); + return sub_81D1B40(state->unk1C[index].unk6, textType); } else { - var0 = state->unk1C[index].unk2; + var0 = state->unk1C[index].unk6; } return gMatchCallMessages[var0][textType]; @@ -383,14 +383,13 @@ u16 sub_81CB02C(int arg0) return state->unk4[arg0]; } -void sub_81CB050(u32 arg0, u8 *str) +void sub_81CB050(struct PokenavMonList * arg0, u8 *str) { - struct Pokenav3Struct_Unk1C *var0 = (struct Pokenav3Struct_Unk1C *)arg0; const u8 *trainerName; const u8 *className; - if (!var0->unk0) + if (!arg0->boxId) { - int index = GetTrainerIdxByRematchIdx(var0->unk2); + int index = GetTrainerIdxByRematchIdx(arg0->unk6); const struct Trainer *trainer = &gTrainers[index]; int class = trainer->trainerClass; className = gTrainerClassNames[class]; @@ -398,7 +397,7 @@ void sub_81CB050(u32 arg0, u8 *str) } else { - sub_81D1A78(var0->unk2, &className, &trainerName); + sub_81D1A78(arg0->unk6, &className, &trainerName); } if (className && trainerName) @@ -425,9 +424,9 @@ int sub_81CB0E4(int index) int count = 1; while (++index < state->unkA) { - if (!state->unk1C[index].unk0) + if (!state->unk1C[index].boxId) return count; - if (sub_81D17E8(state->unk1C[index].unk2)) + if (sub_81D17E8(state->unk1C[index].unk6)) return count; count++; @@ -442,9 +441,9 @@ int sub_81CB128(int index) int count = -1; while (--index >= 0) { - if (!state->unk1C[index].unk0) + if (!state->unk1C[index].boxId) return count; - if (sub_81D17E8(state->unk1C[index].unk2)) + if (sub_81D17E8(state->unk1C[index].unk6)) return count; count--; @@ -480,17 +479,17 @@ static bool32 sub_81CB1D0(void) { struct Pokenav3Struct *state = GetSubstructPtr(5); int index = GetSelectedMatchCall(); - if (!state->unk1C[index].unk0) + if (!state->unk1C[index].boxId) { if (sub_81CAEA4(index) == gMapHeader.regionMapSectionId) { - if (!gSaveBlock1Ptr->trainerRematches[state->unk1C[index].unk2]) + if (!gSaveBlock1Ptr->trainerRematches[state->unk1C[index].unk6]) return TRUE; } } else { - if (state->unk1C[index].unk2 == 11) + if (state->unk1C[index].unk6 == 11) { if (sub_81CAEA4(index) == gMapHeader.regionMapSectionId && FlagGet(FLAG_BADGE05_GET) == TRUE) diff --git a/src/pokenav_unk_4.c b/src/pokenav_unk_4.c index 93dab4491d..0f05c6f5d5 100755 --- a/src/pokenav_unk_4.c +++ b/src/pokenav_unk_4.c @@ -290,7 +290,7 @@ bool32 sub_81CB260(void) return TRUE; } -void sub_81CB29C(int index) +void sub_81CB29C(s32 index) { struct Pokenav4Struct *state = GetSubstructPtr(6); state->unk4 = CreateLoopedTask(gUnknown_08622798[index], 1); @@ -870,7 +870,7 @@ u32 sub_81CBB74(s32 taskState) static void sub_81CBBB8(void) { struct MatchCallListTemplate template; - template.unk0 = (u32)sub_81CAE94(); + template.unk0 = sub_81CAE94(); template.unk4 = sub_81CAE38(); template.unk8 = 4; template.unk6 = 0; diff --git a/src/pokenav_unk_5.c b/src/pokenav_unk_5.c index ccab58078f..03ac05d4d7 100755 --- a/src/pokenav_unk_5.c +++ b/src/pokenav_unk_5.c @@ -166,7 +166,7 @@ const struct SpriteTemplate gUnknown_086231D0 = .callback = sub_81CCEF4, }; -u32 sub_81CC4D4(void) +u32 PokenavCallback_Init_6(void) { struct Pokenav5Struct *state = AllocSubstruct(3, sizeof(struct Pokenav5Struct)); if (!state) @@ -194,7 +194,7 @@ void sub_81CC524(void) u32 sub_81CC554(void) { struct Pokenav5Struct *state = GetSubstructPtr(3); - state->unk10(state); + return state->unk10(state); } static u32 sub_81CC568(struct Pokenav5Struct *state) @@ -248,7 +248,7 @@ bool32 sub_81CC5F4(void) return TRUE; } -void sub_81CC62C(int index) +void sub_81CC62C(s32 index) { struct Pokenav5Struct_2 *state = GetSubstructPtr(4); state->unk4 = CreateLoopedTask(gUnknown_086230E4[index], 1); diff --git a/src/pokenav_unk_6.c b/src/pokenav_unk_6.c index 638884d3f0..ac82377934 100644 --- a/src/pokenav_unk_6.c +++ b/src/pokenav_unk_6.c @@ -47,7 +47,7 @@ void sub_81CDA1C(s16 arg0, u8 arg1); void sub_81CDB98(s16 arg0, u8 arg1); // code -bool32 sub_81CCFD8(void) +bool32 PokenavCallback_Init_7(void) { struct PokenavSub11 *structPtr = AllocSubstruct(11, sizeof(struct PokenavSub11)); @@ -61,7 +61,7 @@ bool32 sub_81CCFD8(void) return TRUE; } -bool32 sub_81CD024(void) +bool32 PokenavCallback_Init_9(void) { struct PokenavSub11 *structPtr = AllocSubstruct(11, sizeof(struct PokenavSub11)); @@ -147,9 +147,9 @@ u32 sub_81CD110(struct PokenavSub11 *structPtr) u32 sub_81CD19C(struct PokenavSub11 *structPtr) { if (structPtr->unk6300 == 0) - return 0x186A2; + return 100002; else - return 0x186AA; + return 100010; } void sub_81CD1C0(void) @@ -365,7 +365,7 @@ u8 *sub_81CD624(u8 *str, u16 id, bool8 arg3) str_ = str; // For some reason, a variable is needed to match. while (*str_ != EOS) - *(str_++); + (str_++); *(str_++) = EXT_CTRL_CODE_BEGIN; *(str_++) = 0x12; diff --git a/src/pokenav_unk_7.c b/src/pokenav_unk_7.c index 90b677fa7e..34432a0776 100644 --- a/src/pokenav_unk_7.c +++ b/src/pokenav_unk_7.c @@ -168,7 +168,7 @@ bool32 sub_81CDDD4(void) return TRUE; } -void sub_81CDE2C(int id) +void sub_81CDE2C(s32 id) { struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC); structPtr->loopedTaskId = CreateLoopedTask(gUnknown_08623384[id], 1); diff --git a/src/pokenav_unk_8.c b/src/pokenav_unk_8.c index bcafc14d03..c52932a798 100644 --- a/src/pokenav_unk_8.c +++ b/src/pokenav_unk_8.c @@ -1,22 +1,63 @@ #include "global.h" #include "pokenav.h" #include "bg.h" +#include "menu.h" #include "window.h" +#include "sound.h" +#include "dynamic_placeholder_text_util.h" +#include "strings.h" +#include "string_util.h" +#include "international_string_util.h" +#include "constants/songs.h" -u32 sub_81CF134(void); -u32 sub_81CF1C4(void); -u32 sub_81CF1D8(void); -u32 sub_81CF278(void); -u32 sub_81CF578(s32); -u32 sub_81CF5F0(s32); -u32 sub_81CF668(s32); -u32 sub_81CF6E0(s32); -u32 sub_81CF758(s32); -u32 sub_81CF798(s32); +struct PokenavSub7 +{ + u32 (*unk0)(struct PokenavSub7 *); + u32 loopedTaskId; + u8 fill1[4]; + s32 unkC; + s32 unk10; + u32 unk14; + u32 unk18; + u32 unk1C; + struct PokenavSub18 *unkPtr; +}; -const u32 gUnknown_086233A0[] = {0x16, 0x17, 0x18, 0x21, 0x2F}; +struct PokenavSub8 +{ + bool32 (*callback)(void); + u32 ltid; + u16 winid; + bool32 unkC; + u8 buff[BG_SCREEN_SIZE]; +}; // size: 0x810 -u32 (*const gUnknown_086233B4[])(void) = +static u32 sub_81CF010(struct PokenavSub7 *structPtr); +static u32 sub_81CF030(struct PokenavSub7 *structPtr); +static u32 sub_81CF0B8(struct PokenavSub7 *structPtr); +static u32 sub_81CF0B0(struct PokenavSub7 *structPtr); +static u32 sub_81CF11C(s32 state); +static u32 sub_81CF134(s32 state); +static u32 sub_81CF1C4(s32 state); +static u32 sub_81CF1D8(s32 state); +static u32 sub_81CF278(s32 state); +static u32 sub_81CF578(s32 state); +static u32 sub_81CF5F0(s32 state); +static u32 sub_81CF668(s32 state); +static u32 sub_81CF6E0(s32 state); +static u32 sub_81CF758(s32 state); +static u32 sub_81CF798(s32 state); +static void sub_81CF2C4(struct PokenavSub7 *structPtr, struct PokenavMonList *item); +static bool32 sub_81CF3E4(void); +static u32 sub_81CF418(s32 state); +static void sub_81CF7C8(struct PokenavSub8 *); +static void sub_81CF7F4(struct PokenavSub8 *); +static void sub_81CF88C(void); +static void sub_81CF8E4(struct PokenavMonList *, u8 *); + +static const u32 gUnknown_086233A0[] = {0x16, 0x17, 0x18, 0x21, 0x2F}; + +static const LoopedTask gUnknown_086233B4[] = { sub_81CF134, sub_81CF1C4, @@ -24,34 +65,33 @@ u32 (*const gUnknown_086233B4[])(void) = sub_81CF278 }; -const u16 gUnknown_086233C4[] = INCBIN_U16("graphics/pokenav/condition_search2.gbapal"); -const u32 gUnknown_086233E4[] = INCBIN_U32("graphics/pokenav/condition_search2.4bpp.lz"); -const u32 gUnknown_086234AC[] = INCBIN_U32("graphics/pokenav/condition_search2.bin.lz"); -const u16 gUnknown_08623570[] = INCBIN_U16("graphics/pokenav/8623570.gbapal"); +static const u16 gUnknown_086233C4[] = INCBIN_U16("graphics/pokenav/condition_search2.gbapal"); +static const u32 gUnknown_086233E4[] = INCBIN_U32("graphics/pokenav/condition_search2.4bpp.lz"); +static const u32 gUnknown_086234AC[] = INCBIN_U32("graphics/pokenav/condition_search2.bin.lz"); +static const u16 gUnknown_08623570[] = INCBIN_U16("graphics/pokenav/8623570.gbapal"); -const struct BgTemplate gUnknown_08623590 = +static const struct BgTemplate gUnknown_08623590[] = { - .bg = 1, - .charBaseIndex = 1, - .mapBaseIndex = 0x06, - .screenSize = 0, - .paletteMode = 0, - .priority = 2, - .baseTile = 0 + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 0x06, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 0x07, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + } }; -const struct BgTemplate gUnknown_08623594 = -{ - .bg = 2, - .charBaseIndex = 2, - .mapBaseIndex = 0x07, - .screenSize = 0, - .paletteMode = 0, - .priority = 3, - .baseTile = 0 -}; - -const LoopedTask gUnknown_08623598[] = +static const LoopedTask gUnknown_08623598[] = { NULL, sub_81CF578, @@ -62,7 +102,7 @@ const LoopedTask gUnknown_08623598[] = sub_81CF798 }; -const struct WindowTemplate gUnknown_086235B4 = +static const struct WindowTemplate gUnknown_086235B4 = { .bg = 1, .tilemapLeft = 1, @@ -73,28 +113,11 @@ const struct WindowTemplate gUnknown_086235B4 = .baseBlock = 20 }; -const u8 gUnknown_086235BC[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}"); -const u8 gUnknown_086235C8[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}"); -const u8 gUnknown_086235D4[] = _("{UNK_SPACER}"); +static const u8 gUnknown_086235BC[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}"); +static const u8 gUnknown_086235C8[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}"); +static const u8 gUnknown_086235D4[] = _("{UNK_SPACER}"); -struct PokenavSub7 -{ - u32 (*unk0)(struct PokenavSub7 *); - u32 loopedTaskId; - u8 fill1[12]; - u32 unk14; - u32 unk18; - u32 unk1C; - struct PokenavSub18 *unkPtr; -}; - -u32 sub_81CF010(struct PokenavSub7 *structPtr); -u32 sub_81CF030(struct PokenavSub7 *structPtr); -u32 sub_81CF0B8(struct PokenavSub7 *structPtr); -u32 sub_81CF0B0(struct PokenavSub7 *structPtr); -u32 sub_81CF11C(s32 state); - -bool32 sub_81CEF3C(void) +bool32 PokenavCallback_Init_8(void) { struct PokenavSub7 *structPtr = AllocSubstruct(7, sizeof(struct PokenavSub7)); if (structPtr == NULL) @@ -111,7 +134,7 @@ bool32 sub_81CEF3C(void) return TRUE; } -bool32 sub_81CEF98(void) +bool32 PokenavCallback_Init_10(void) { struct PokenavSub7 *structPtr = AllocSubstruct(7, sizeof(struct PokenavSub7)); if (structPtr == NULL) @@ -138,14 +161,14 @@ void sub_81CEFF0(void) FreePokenavSubstruct(7); } -bool32 sub_81CF010(struct PokenavSub7 *structPtr) +static bool32 sub_81CF010(struct PokenavSub7 *structPtr) { if (!IsLoopedTaskActive(structPtr->loopedTaskId)) structPtr->unk0 = sub_81CF030; return FALSE; } -u32 sub_81CF030(struct PokenavSub7 *structPtr) +static u32 sub_81CF030(struct PokenavSub7 *structPtr) { if (gMain.newAndRepeatedKeys & DPAD_UP) return 1; @@ -172,18 +195,516 @@ u32 sub_81CF030(struct PokenavSub7 *structPtr) return 0; } -u32 sub_81CF0B0(struct PokenavSub7 *structPtr) +static u32 sub_81CF0B0(struct PokenavSub7 *structPtr) { - return 0x186A3; + return 100003; } -u32 sub_81CF0B8(struct PokenavSub7 *structPtr) +static u32 sub_81CF0B8(struct PokenavSub7 *structPtr) { - return 0x186A9; + return 100009; } -u32 sub_81CF0C0(void) +static u32 sub_81CF0C0(void) { struct PokenavSub7 *structPtr = GetSubstructPtr(7); return structPtr->unk18; } + +static struct PokenavMonList * sub_81CF0D0(void) +{ + struct PokenavSub7 * ptr = GetSubstructPtr(7); + return ptr->unkPtr->unk4; +} + +static u16 sub_81CF0E0(void) +{ + struct PokenavSub7 * ptr = GetSubstructPtr(7); + return ptr->unkPtr->unk0; +} + +static s32 sub_81CF0F0(void) +{ + struct PokenavSub7 * ptr = GetSubstructPtr(7); + s32 i = GetSelectedMatchCall(); + return ptr->unkPtr->unk4[i].unk6; +} + +static u16 sub_81CF10C(void) +{ + struct PokenavSub7 * ptr = GetSubstructPtr(7); + return ptr->unkPtr->unk2; +} + +static u32 sub_81CF11C(s32 state) +{ + return gUnknown_086233B4[state](state); +} + +static u32 sub_81CF134(s32 state) +{ + s32 i; + struct PokenavMonList item; + struct PokenavSub7 * ptr = GetSubstructPtr(7); + + ptr->unkPtr->unk0 = 0; + ptr->unkPtr->unk2 = 0; + item.boxId = 14; + for (i = 0; i < PARTY_SIZE; i++) + { + struct Pokemon * pokemon = &gPlayerParty[i]; + if (!GetMonData(pokemon, MON_DATA_SANITY_HAS_SPECIES)) + return LT_INC_AND_CONTINUE; + if (!GetMonData(pokemon, MON_DATA_SANITY_IS_EGG)) + { + item.monId = i; + item.unk6 = GetMonData(pokemon, ptr->unk14); + sub_81CF2C4(ptr, &item); + } + } + + return LT_INC_AND_CONTINUE; +} + +static u32 sub_81CF1C4(s32 state) +{ + struct PokenavSub7 * ptr = GetSubstructPtr(7); + ptr->unk10 = 0; + ptr->unkC = 0; + return LT_INC_AND_CONTINUE; +} + +static u32 sub_81CF1D8(s32 state) +{ + struct PokenavSub7 * ptr = GetSubstructPtr(7); + s32 boxId = ptr->unkC; + s32 monId = ptr->unk10; + s32 boxCount = 0; + struct PokenavMonList item; + + while (boxId < TOTAL_BOXES_COUNT) + { + while (monId < IN_BOX_COUNT) + { + if (CheckBoxMonSanityAt(boxId, monId)) + { + item.boxId = boxId; + item.monId = monId; + item.unk6 = GetBoxMonDataAt(boxId, monId, ptr->unk14); + sub_81CF2C4(ptr, &item); + } + boxCount++; + monId++; + if (boxCount > 14) + { + ptr->unkC = boxId; + ptr->unk10 = monId; + return LT_CONTINUE; + } + } + monId = 0; + boxId++; + } + + return LT_INC_AND_CONTINUE; +} + +static u32 sub_81CF278(s32 state) +{ + struct PokenavSub7 * ptr = GetSubstructPtr(7); + s32 r6 = ptr->unkPtr->unk0; + s32 r4 = ptr->unkPtr->unk4[0].unk6; + s32 i; + ptr->unkPtr->unk4[0].unk6 = 1; + for (i = 1; i < r6; i++) + { + if (ptr->unkPtr->unk4[i].unk6 == r4) + { + ptr->unkPtr->unk4[i].unk6 = ptr->unkPtr->unk4[i - 1].unk6; + } + else + { + r4 = ptr->unkPtr->unk4[i].unk6; + ptr->unkPtr->unk4[i].unk6 = i + 1; + } + } + ptr->unk18 = 1; + return LT_FINISH; +} + +static void sub_81CF2C4(struct PokenavSub7 *structPtr, struct PokenavMonList *item) +{ + u32 left = 0; + u32 right = structPtr->unkPtr->unk0; + u32 insertionIdx = left + (right - left) / 2; + + while (right != insertionIdx) + { + if (item->unk6 > structPtr->unkPtr->unk4[insertionIdx].unk6) + right = insertionIdx; + else + left = insertionIdx + 1; + insertionIdx = left + (right - left) / 2; + } + for (right = structPtr->unkPtr->unk0; right > insertionIdx; right--) + structPtr->unkPtr->unk4[right] = structPtr->unkPtr->unk4[right - 1]; + structPtr->unkPtr->unk4[insertionIdx] = *item; + structPtr->unkPtr->unk0++; +} + +bool32 sub_81CF330(void) +{ + struct PokenavSub8 * unk = AllocSubstruct(8, sizeof(struct PokenavSub8)); + if (unk == NULL) + return FALSE; + unk->ltid = CreateLoopedTask(sub_81CF418, 1); + unk->callback = sub_81CF3E4; + unk->unkC = FALSE; + return TRUE; +} + +bool32 sub_81CF368(void) +{ + struct PokenavSub8 * unk = AllocSubstruct(8, sizeof(struct PokenavSub8)); + if (unk == NULL) + return FALSE; + unk->ltid = CreateLoopedTask(sub_81CF418, 1); + unk->callback = sub_81CF3E4; + unk->unkC = TRUE; + return TRUE; +} + +void sub_81CF3A0(s32 idx) +{ + struct PokenavSub8 * unk = GetSubstructPtr(8); + unk->ltid = CreateLoopedTask(gUnknown_08623598[idx], 1); + unk->callback = sub_81CF3E4; +} + +bool32 sub_81CF3D0(void) +{ + struct PokenavSub8 * unk = GetSubstructPtr(8); + return unk->callback(); +} + +bool32 sub_81CF3E4(void) +{ + struct PokenavSub8 * unk = GetSubstructPtr(8); + return IsLoopedTaskActive(unk->ltid); +} + +void sub_81CF3F8(void) +{ + struct PokenavSub8 * unk = GetSubstructPtr(8); + sub_81C8234(); + RemoveWindow(unk->winid); + FreePokenavSubstruct(8); +} + +static u32 sub_81CF418(s32 state) +{ + struct PokenavSub8 * unk = GetSubstructPtr(8); + switch (state) + { + case 0: + InitBgTemplates(gUnknown_08623590, NELEMS(gUnknown_08623590)); + decompress_and_copy_tile_data_to_vram(1, gUnknown_086233E4, 0, 0, 0); + SetBgTilemapBuffer(1, unk->buff); + CopyToBgTilemapBuffer(1, gUnknown_086234AC, 0, 0); + CopyBgTilemapBufferToVram(1); + CopyPaletteIntoBufferUnfaded(gUnknown_086233C4, 0x10, 0x20); + CopyBgTilemapBufferToVram(1); + return LT_INC_AND_PAUSE; + case 1: + if (free_temp_tile_data_buffers_if_possible()) + return LT_PAUSE; + if (!sub_81CF0C0()) + return LT_PAUSE; + return LT_INC_AND_PAUSE; + case 2: + if (free_temp_tile_data_buffers_if_possible()) + return LT_PAUSE; + CopyPaletteIntoBufferUnfaded(gUnknown_08623570, 0x20, 0x20); + sub_81CF88C(); + return LT_INC_AND_PAUSE; + case 3: + if (sub_81C8224()) + return LT_PAUSE; + sub_81CF7C8(unk); + sub_81C7BA4(3); + return LT_INC_AND_PAUSE; + case 4: + if (free_temp_tile_data_buffers_if_possible()) + return LT_PAUSE; + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ShowBg(1); + ShowBg(2); + HideBg(3); + if (!unk->unkC) + { + u8 r4 = sub_81C76AC() + 8; + LoadLeftHeaderGfxForIndex(r4); + sub_81C7FA0(r4, 1, 0); + sub_81C7FA0(1, 1, 0); + } + sub_81C7AC0(1); + return LT_INC_AND_PAUSE; + case 5: + if (IsPaletteFadeActive()) + return LT_PAUSE; + if (sub_81C8010()) + return LT_PAUSE; + break; + } + return LT_FINISH; +} + +static u32 sub_81CF578(s32 state) +{ + struct PokenavSub8 * unk = GetSubstructPtr(8); + switch (state) + { + case 0: + switch (MatchCall_MoveCursorUp()) + { + case 0: + return LT_FINISH; + case 1: + PlaySE(SE_SELECT); + return LT_SET_STATE(2); + case 2: + PlaySE(SE_SELECT); + break; + } + return LT_INC_AND_PAUSE; + case 1: + if (sub_81C8630()) + return LT_PAUSE; + // fallthrough + case 2: + sub_81CF7F4(unk); + return LT_INC_AND_PAUSE; + case 3: + if (IsDma3ManagerBusyWithBgCopy()) + return LT_PAUSE; + break; + } + return LT_FINISH; +} + +static u32 sub_81CF5F0(s32 state) +{ + struct PokenavSub8 * unk = GetSubstructPtr(8); + switch (state) + { + case 0: + switch (MatchCall_MoveCursorDown()) + { + case 0: + return LT_FINISH; + case 1: + PlaySE(SE_SELECT); + return LT_SET_STATE(2); + case 2: + PlaySE(SE_SELECT); + break; + } + return LT_INC_AND_PAUSE; + case 1: + if (sub_81C8630()) + return LT_PAUSE; + // fallthrough + case 2: + sub_81CF7F4(unk); + return LT_INC_AND_PAUSE; + case 3: + if (IsDma3ManagerBusyWithBgCopy()) + return LT_PAUSE; + break; + } + return LT_FINISH; +} + +static u32 sub_81CF668(s32 state) +{ + struct PokenavSub8 * unk = GetSubstructPtr(8); + switch (state) + { + case 0: + switch (MatchCall_PageUp()) + { + case 0: + return LT_FINISH; + case 1: + PlaySE(SE_SELECT); + return LT_SET_STATE(2); + case 2: + PlaySE(SE_SELECT); + break; + } + return LT_INC_AND_PAUSE; + case 1: + if (sub_81C8630()) + return LT_PAUSE; + // fallthrough + case 2: + sub_81CF7F4(unk); + return LT_INC_AND_PAUSE; + case 3: + if (IsDma3ManagerBusyWithBgCopy()) + return LT_PAUSE; + break; + } + return LT_FINISH; +} + +static u32 sub_81CF6E0(s32 state) +{ + struct PokenavSub8 * unk = GetSubstructPtr(8); + switch (state) + { + case 0: + switch (MatchCall_PageDown()) + { + case 0: + return LT_FINISH; + case 1: + PlaySE(SE_SELECT); + return LT_SET_STATE(2); + case 2: + PlaySE(SE_SELECT); + break; + } + return LT_INC_AND_PAUSE; + case 1: + if (sub_81C8630()) + return LT_PAUSE; + // fallthrough + case 2: + sub_81CF7F4(unk); + return LT_INC_AND_PAUSE; + case 3: + if (IsDma3ManagerBusyWithBgCopy()) + return LT_PAUSE; + break; + } + return LT_FINISH; +} + +static u32 sub_81CF758(s32 state) +{ + switch (state) + { + case 0: + PlaySE(SE_SELECT); + sub_81C7AC0(0); + sub_81C78A0(); + return LT_INC_AND_PAUSE; + case 1: + if (IsPaletteFadeActive()) + return LT_PAUSE; + if (MainMenuLoopedTaskIsBusy()) + return LT_PAUSE; + sub_81C7FDC(); + break; + } + return LT_FINISH; +} + +static u32 sub_81CF798(s32 state) +{ + switch (state) + { + case 0: + PlaySE(SE_SELECT); + sub_81C7AC0(0); + return LT_INC_AND_PAUSE; + case 1: + if (IsPaletteFadeActive()) + return LT_PAUSE; + break; + } + return LT_FINISH; +} + +static void sub_81CF7C8(struct PokenavSub8 * ptr) +{ + ptr->winid = AddWindow(&gUnknown_086235B4); + PutWindowTilemap(ptr->winid); + CopyWindowToVram(ptr->winid, 1); + sub_81CF7F4(ptr); +} + +static void sub_81CF7F4(struct PokenavSub8 * ptr) +{ + s32 r7 = sub_81CF0F0(); + DynamicPlaceholderTextUtil_Reset(); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); + *gStringVar1 = EOS; + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar2, gText_NumberF700); + AddTextPrinterParameterized(ptr->winid, 1, gStringVar2, 4, 1, 0xFF, NULL); + ConvertIntToDecimalStringN(gStringVar1, r7, STR_CONV_MODE_RIGHT_ALIGN, 3); + AddTextPrinterParameterized(ptr->winid, 1, gStringVar1, 34, 1, 0xFF, NULL); + CopyWindowToVram(ptr->winid, 2); +} + +static void sub_81CF88C(void) +{ + struct MatchCallListTemplate template; + template.unk0 = sub_81CF0D0(); + template.unk4 = sub_81CF0E0(); + template.unk8 = 4; + template.unk6 = sub_81CF10C(); + template.unk9 = 13; + template.unkA = 17; + template.unkB = 1; + template.unkC = 8; + template.unkD = 2; + template.unkE = 1; + template.unk10 = sub_81CF8E4; + template.unk14 = NULL; + sub_81C81D4(&gUnknown_08623590[1], &template, 0); +} + +static void sub_81CF8E4(struct PokenavMonList * item, u8 * dest) +{ + u8 gender; + u8 level; + u8 * s; + const u8 * genderStr; + if (item->boxId == 14) + { + struct Pokemon * mon = &gPlayerParty[item->monId]; + gender = GetMonGender(mon); + level = GetLevelFromMonExp(mon); + GetMonData(mon, MON_DATA_NICKNAME, gStringVar3); + } + else + { + struct BoxPokemon * mon = GetBoxedMonPtr(item->boxId, item->monId); + gender = GetBoxMonGender(mon); + level = GetLevelFromBoxMonExp(mon); + GetBoxMonData(mon, MON_DATA_NICKNAME, gStringVar3); + } + StringGetEnd10(gStringVar3); + dest = sub_81DB494(dest, 1, gStringVar3, 60); + switch (gender) + { + default: + genderStr = gUnknown_086235D4; + break; + case MON_MALE: + genderStr = gUnknown_086235BC; + break; + case MON_FEMALE: + genderStr = gUnknown_086235C8; + break; + } + s = StringCopy(gStringVar1, genderStr); + *s++ = CHAR_SLASH; + *s++ = CHAR_SPECIAL_F9; + *s++ = 5; // LV + ConvertIntToDecimalStringN(s, level, STR_CONV_MODE_LEFT_ALIGN, 3); + sub_81DB494(dest, 1, gStringVar1, 40); +} diff --git a/src/pokenav_unk_9.c b/src/pokenav_unk_9.c index 2927d72111..05d590a877 100644 --- a/src/pokenav_unk_9.c +++ b/src/pokenav_unk_9.c @@ -1,53 +1,91 @@ #include "global.h" #include "pokenav.h" #include "bg.h" +#include "menu.h" #include "window.h" +#include "sound.h" +#include "string_util.h" +#include "international_string_util.h" +#include "constants/songs.h" -u32 sub_81CFB8C(void); -u32 sub_81CFC2C(void); -u32 sub_81CFC40(void); -u32 sub_81CFFFC(s32); -u32 sub_81D0074(s32); -u32 sub_81D00EC(s32); -u32 sub_81D0164(s32); -u32 sub_81D01DC(s32); -u32 sub_81D021C(s32); +struct PokenavSub9 +{ + u32 (*unk0)(struct PokenavSub9*); + u32 loopedTaskId; + u16 winid; + s32 unkC; + s32 unk10; + u32 unk14; + u32 unk18; + struct PokenavSub18 *unk1C; +}; -u32 (*const gUnknown_086235D8[])(void) = +struct PokenavSub10 +{ + bool32 (*callback)(void); + u32 ltid; + u16 winid; + bool32 unkC; + u8 buff[BG_SCREEN_SIZE]; +}; + +static u32 sub_81CFA68(struct PokenavSub9 *structPtr); +static u32 sub_81CFA88(struct PokenavSub9 *structPtr); +static u32 sub_81CFB08(struct PokenavSub9 *structPtr); +static u32 sub_81CFB10(struct PokenavSub9 *structPtr); +static u32 sub_81CFB8C(s32 state); +static u32 sub_81CFC2C(s32 state); +static u32 sub_81CFC40(s32 state); +static u32 sub_81CFB74(s32 state); +static void sub_81CFCEC(struct PokenavSub9 *structPtr, struct PokenavMonList *item); +static u32 sub_81CFEB8(s32 state); +static bool32 sub_81CFE84(void); +static u32 sub_81CFFFC(s32 state); +static u32 sub_81D0074(s32 state); +static u32 sub_81D00EC(s32 state); +static u32 sub_81D0164(s32 state); +static u32 sub_81D01DC(s32 state); +static u32 sub_81D021C(s32 state); +static void sub_81D02B0(s32 windowId, s32 val1, s32 val2); +static void sub_81D024C(struct PokenavSub10 *ptr); +static void sub_81D0288(struct PokenavSub10 *ptr); +static void sub_81D0304(void); +static void sub_81D035C(struct PokenavMonList *, u8 *); + +static const LoopedTask gUnknown_086235D8[] = { sub_81CFB8C, sub_81CFC2C, sub_81CFC40 }; -const u16 gUnknown_086235E4[] = INCBIN_U16("graphics/pokenav/ui_ribbons.gbapal"); -const u32 gUnknown_08623604[] = INCBIN_U32("graphics/pokenav/ui_ribbons.4bpp.lz"); -const u32 gUnknown_086236CC[] = INCBIN_U32("graphics/pokenav/ui_ribbons.bin.lz"); -const u16 gUnknown_08623790[] = INCBIN_U16("graphics/pokenav/8623790.gbapal"); +static const u16 gUnknown_086235E4[] = INCBIN_U16("graphics/pokenav/ui_ribbons.gbapal"); +static const u32 gUnknown_08623604[] = INCBIN_U32("graphics/pokenav/ui_ribbons.4bpp.lz"); +static const u32 gUnknown_086236CC[] = INCBIN_U32("graphics/pokenav/ui_ribbons.bin.lz"); +static const u16 gUnknown_08623790[] = INCBIN_U16("graphics/pokenav/8623790.gbapal"); -const struct BgTemplate gUnknown_086237B0 = +static const struct BgTemplate gUnknown_086237B0[] = { - .bg = 1, - .charBaseIndex = 1, - .mapBaseIndex = 0x06, - .screenSize = 0, - .paletteMode = 0, - .priority = 2, - .baseTile = 0 + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 0x06, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 0x07, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + } }; -const struct BgTemplate gUnknown_086237B4 = -{ - .bg = 2, - .charBaseIndex = 2, - .mapBaseIndex = 0x07, - .screenSize = 0, - .paletteMode = 0, - .priority = 3, - .baseTile = 0 -}; - -const LoopedTask gUnknown_086237B8[] = +static const LoopedTask gUnknown_086237B8[] = { NULL, sub_81CFFFC, @@ -58,7 +96,7 @@ const LoopedTask gUnknown_086237B8[] = sub_81D021C }; -const struct WindowTemplate gUnknown_086237D4 = +static const struct WindowTemplate gUnknown_086237D4 = { .bg = 1, .tilemapLeft = 1, @@ -69,6 +107,620 @@ const struct WindowTemplate gUnknown_086237D4 = .baseBlock = 20 }; -const u8 gUnknown_086237DC[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}"); -const u8 gUnknown_086237E8[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}"); -const u8 gUnknown_086237F4[] = _("{UNK_SPACER}"); +static const u8 gUnknown_086237DC[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}"); +static const u8 gUnknown_086237E8[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}"); +static const u8 gUnknown_086237F4[] = _("{UNK_SPACER}"); + +bool32 PokenavCallback_Init_12(void) +{ + struct PokenavSub9 *structPtr = AllocSubstruct(9, sizeof(struct PokenavSub9)); + if (structPtr == NULL) + return FALSE; + + structPtr->unk1C = AllocSubstruct(18, sizeof(struct PokenavSub18)); + if (structPtr->unk1C == NULL) + return FALSE; + + structPtr->unk0 = sub_81CFA68; + structPtr->loopedTaskId = CreateLoopedTask(sub_81CFB74, 1); + structPtr->unk14 = 0; + return TRUE; +} + +bool32 PokenavCallback_Init_14(void) +{ + struct PokenavSub9 *structPtr = AllocSubstruct(9, sizeof(struct PokenavSub9)); + if (structPtr == NULL) + return FALSE; + + structPtr->unk1C = GetSubstructPtr(18); + structPtr->unk0 = sub_81CFA88; + structPtr->unk14 = 1; + return TRUE; +} + +u32 sub_81CFA34(void) +{ + struct PokenavSub9 *structPtr = GetSubstructPtr(9); + return structPtr->unk0(structPtr); +} + +void sub_81CFA48(void) +{ + struct PokenavSub9 *structPtr = GetSubstructPtr(9); + if (!structPtr->unk18) + FreePokenavSubstruct(18); + FreePokenavSubstruct(9); +} + +static u32 sub_81CFA68(struct PokenavSub9 *structPtr) +{ + if (!IsLoopedTaskActive(structPtr->loopedTaskId)) + structPtr->unk0 = sub_81CFA88; + return 0; +} + +static u32 sub_81CFA88(struct PokenavSub9 *structPtr) +{ + if (gMain.newAndRepeatedKeys & DPAD_UP) + return 1; + if (gMain.newAndRepeatedKeys & DPAD_DOWN) + return 2; + if (gMain.newKeys & DPAD_LEFT) + return 3; + if (gMain.newKeys & DPAD_RIGHT) + return 4; + if (gMain.newKeys & B_BUTTON) + { + structPtr->unk18 = 0; + structPtr->unk0 = sub_81CFB08; + return 5; + } + if (gMain.newKeys & A_BUTTON) + { + structPtr->unk1C->unk2 = GetSelectedMatchCall(); + structPtr->unk18 = 1; + structPtr->unk0 = sub_81CFB10; + return 6; + } + return 0; +} + +static u32 sub_81CFB08(struct PokenavSub9 *structPtr) +{ + return 100005; +} + +static u32 sub_81CFB10(struct PokenavSub9 *structPtr) +{ + return 100013; +} + +static u32 sub_81CFB18(void) +{ + struct PokenavSub9 *structPtr = GetSubstructPtr(9); + return structPtr->unk14; +} + +static struct PokenavMonList * sub_81CFB28(void) +{ + struct PokenavSub9 * ptr = GetSubstructPtr(9); + return ptr->unk1C->unk4; +} + +static s32 sub_81CFB38(void) +{ + struct PokenavSub9 * ptr = GetSubstructPtr(9); + return ptr->unk1C->unk0; +} + +static s32 sub_81CFB48(void) +{ + struct PokenavSub9 * ptr = GetSubstructPtr(9); + s32 idx = GetSelectedMatchCall(); + return ptr->unk1C->unk4[idx].unk6; +} + +static s32 sub_81CFB64(void) +{ + struct PokenavSub9 * ptr = GetSubstructPtr(9); + return ptr->unk1C->unk2; +} + +static u32 sub_81CFB74(s32 state) +{ + return gUnknown_086235D8[state](state); +} + +static u32 sub_81CFB8C(s32 state) +{ + s32 i; + struct PokenavMonList item; + struct PokenavSub9 * ptr = GetSubstructPtr(9); + + ptr->unk1C->unk0 = 0; + ptr->unk1C->unk2 = 0; + item.boxId = 14; + for (i = 0; i < PARTY_SIZE; i++) + { + struct Pokemon * pokemon = &gPlayerParty[i]; + if (!GetMonData(pokemon, MON_DATA_SANITY_HAS_SPECIES)) + return LT_INC_AND_CONTINUE; + if (!GetMonData(pokemon, MON_DATA_SANITY_IS_EGG) && !GetMonData(pokemon, MON_DATA_SANITY_IS_BAD_EGG)) + { + u32 ribbonCount = GetMonData(pokemon, MON_DATA_RIBBON_COUNT); + if (ribbonCount != 0) + { + item.monId = i; + item.unk6 = ribbonCount; + sub_81CFCEC(ptr, &item); + } + } + } + + return LT_INC_AND_CONTINUE; +} + +static u32 sub_81CFC2C(s32 state) +{ + struct PokenavSub9 * ptr = GetSubstructPtr(9); + ptr->unk10 = 0; + ptr->unkC = 0; + return LT_INC_AND_CONTINUE; +} + +static u32 sub_81CFC40(s32 state) +{ + struct PokenavSub9 * ptr = GetSubstructPtr(9); + s32 boxId = ptr->unkC; + s32 monId = ptr->unk10; + s32 boxCount = 0; + struct PokenavMonList item; + + while (boxId < TOTAL_BOXES_COUNT) + { + while (monId < IN_BOX_COUNT) + { + if (CheckBoxMonSanityAt(boxId, monId)) + { + u32 ribbonCount = GetBoxMonDataAt(boxId, monId, MON_DATA_RIBBON_COUNT); + if (ribbonCount != 0) + { + item.boxId = boxId; + item.monId = monId; + item.unk6 = ribbonCount; + sub_81CFCEC(ptr, &item); + } + } + boxCount++; + monId++; + if (boxCount > 14) + { + ptr->unkC = boxId; + ptr->unk10 = monId; + return LT_CONTINUE; + } + } + monId = 0; + boxId++; + } + + ptr->unk14 = 1; + return LT_FINISH; +} + +static void sub_81CFCEC(struct PokenavSub9 *structPtr, struct PokenavMonList *item) +{ + u32 left = 0; + u32 right = structPtr->unk1C->unk0; + u32 insertionIdx = left + (right - left) / 2; + + while (right != insertionIdx) + { + if (item->unk6 > structPtr->unk1C->unk4[insertionIdx].unk6) + right = insertionIdx; + else + left = insertionIdx + 1; + insertionIdx = left + (right - left) / 2; + } + for (right = structPtr->unk1C->unk0; right > insertionIdx; right--) + structPtr->unk1C->unk4[right] = structPtr->unk1C->unk4[right - 1]; + structPtr->unk1C->unk4[insertionIdx] = *item; + structPtr->unk1C->unk0++; +} + +static bool32 sub_81CFD58(void) +{ + s32 i, j; + + for (i = 0; i < PARTY_SIZE; i++) + { + struct Pokemon * mon = &gPlayerParty[i]; + if (!GetMonData(mon, MON_DATA_SANITY_HAS_SPECIES)) + continue; + if (GetMonData(mon, MON_DATA_SANITY_IS_EGG)) + continue; + if (GetMonData(mon, MON_DATA_RIBBONS)) + return TRUE; + } + + for (i = 0; i < TOTAL_BOXES_COUNT; i++) + { + for (j = 0; j < IN_BOX_COUNT; j++) + { + if (!CheckBoxMonSanityAt(i, j)) + continue; + if (GetBoxMonDataAt(i, j, MON_DATA_RIBBONS)) + return TRUE; + } + } + + return FALSE; +} + +bool32 sub_81CFDD0(void) +{ + struct PokenavSub10 * ptr = AllocSubstruct(10, sizeof(struct PokenavSub10)); + if (ptr == NULL) + return FALSE; + ptr->ltid = CreateLoopedTask(sub_81CFEB8, 1); + ptr->callback = sub_81CFE84; + ptr->unkC = FALSE; + return TRUE; +} + +bool32 sub_81CFE08(void) +{ + struct PokenavSub10 * ptr = AllocSubstruct(10, sizeof(struct PokenavSub10)); + if (ptr == NULL) + return FALSE; + ptr->ltid = CreateLoopedTask(sub_81CFEB8, 1); + ptr->callback = sub_81CFE84; + ptr->unkC = TRUE; + return TRUE; +} + +void sub_81CFE40(s32 idx) +{ + struct PokenavSub10 * ptr = GetSubstructPtr(10); + ptr->ltid = CreateLoopedTask(gUnknown_086237B8[idx], 1); + ptr->callback = sub_81CFE84; +} + +bool32 sub_81CFE70(void) +{ + struct PokenavSub10 * ptr = GetSubstructPtr(10); + return ptr->callback(); +} + +bool32 sub_81CFE84(void) +{ + struct PokenavSub10 * ptr = GetSubstructPtr(10); + return IsLoopedTaskActive(ptr->ltid); +} + +void sub_81CFE98(void) +{ + struct PokenavSub10 * ptr = GetSubstructPtr(10); + sub_81C8234(); + RemoveWindow(ptr->winid); + FreePokenavSubstruct(10); +} + +static u32 sub_81CFEB8(s32 state) +{ + struct PokenavSub10 * unk = GetSubstructPtr(10); + switch (state) + { + case 0: + InitBgTemplates(gUnknown_086237B0, NELEMS(gUnknown_086237B0)); + decompress_and_copy_tile_data_to_vram(1, gUnknown_08623604, 0, 0, 0); + SetBgTilemapBuffer(1, unk->buff); + CopyToBgTilemapBuffer(1, gUnknown_086236CC, 0, 0); + CopyPaletteIntoBufferUnfaded(gUnknown_086235E4, 0x10, 0x20); + CopyBgTilemapBufferToVram(1); + return LT_INC_AND_PAUSE; + case 1: + if (free_temp_tile_data_buffers_if_possible()) + return LT_PAUSE; + if (!sub_81CFB18()) + return LT_PAUSE; + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ShowBg(1); + return LT_INC_AND_PAUSE; + case 2: + if (free_temp_tile_data_buffers_if_possible()) + return LT_PAUSE; + CopyPaletteIntoBufferUnfaded(gUnknown_08623790, 0x20, 0x20); + sub_81D0304(); + return LT_INC_AND_PAUSE; + case 3: + if (sub_81C8224()) + return LT_PAUSE; + sub_81D024C(unk); + return LT_INC_AND_PAUSE; + case 4: + if (free_temp_tile_data_buffers_if_possible()) + return LT_PAUSE; + ShowBg(2); + HideBg(3); + sub_81C7BA4(9); + sub_81C7AC0(1); + if (!unk->unkC) + { + LoadLeftHeaderGfxForIndex(2); + sub_81C7FA0(2, 1, 0); + } + return LT_INC_AND_PAUSE; + case 5: + if (IsPaletteFadeActive()) + return LT_PAUSE; + if (sub_81C8010()) + return LT_PAUSE; + break; + } + return LT_FINISH; +} + +static u32 sub_81CFFFC(s32 state) +{ + struct PokenavSub10 * unk = GetSubstructPtr(10); + switch (state) + { + case 0: + switch (MatchCall_MoveCursorUp()) + { + case 0: + return LT_FINISH; + case 1: + PlaySE(SE_SELECT); + return LT_SET_STATE(2); + case 2: + PlaySE(SE_SELECT); + break; + } + return LT_INC_AND_PAUSE; + case 1: + if (sub_81C8630()) + return LT_PAUSE; + // fallthrough + case 2: + sub_81D0288(unk); + return LT_INC_AND_PAUSE; + case 3: + if (IsDma3ManagerBusyWithBgCopy()) + return LT_PAUSE; + break; + } + return LT_FINISH; +} + +static u32 sub_81D0074(s32 state) +{ + struct PokenavSub10 * unk = GetSubstructPtr(10); + switch (state) + { + case 0: + switch (MatchCall_MoveCursorDown()) + { + case 0: + return LT_FINISH; + case 1: + PlaySE(SE_SELECT); + return LT_SET_STATE(2); + case 2: + PlaySE(SE_SELECT); + break; + } + return LT_INC_AND_PAUSE; + case 1: + if (sub_81C8630()) + return LT_PAUSE; + // fallthrough + case 2: + sub_81D0288(unk); + return LT_INC_AND_PAUSE; + case 3: + if (IsDma3ManagerBusyWithBgCopy()) + return LT_PAUSE; + break; + } + return LT_FINISH; +} + +static u32 sub_81D00EC(s32 state) +{ + struct PokenavSub10 * unk = GetSubstructPtr(10); + switch (state) + { + case 0: + switch (MatchCall_PageUp()) + { + case 0: + return LT_FINISH; + case 1: + PlaySE(SE_SELECT); + return LT_SET_STATE(2); + case 2: + PlaySE(SE_SELECT); + break; + } + return LT_INC_AND_PAUSE; + case 1: + if (sub_81C8630()) + return LT_PAUSE; + // fallthrough + case 2: + sub_81D0288(unk); + return LT_INC_AND_PAUSE; + case 3: + if (IsDma3ManagerBusyWithBgCopy()) + return LT_PAUSE; + break; + } + return LT_FINISH; +} + +static u32 sub_81D0164(s32 state) +{ + struct PokenavSub10 * unk = GetSubstructPtr(10); + switch (state) + { + case 0: + switch (MatchCall_PageDown()) + { + case 0: + return LT_FINISH; + case 1: + PlaySE(SE_SELECT); + return LT_SET_STATE(2); + case 2: + PlaySE(SE_SELECT); + break; + } + return LT_INC_AND_PAUSE; + case 1: + if (sub_81C8630()) + return LT_PAUSE; + // fallthrough + case 2: + sub_81D0288(unk); + return LT_INC_AND_PAUSE; + case 3: + if (IsDma3ManagerBusyWithBgCopy()) + return LT_PAUSE; + break; + } + return LT_FINISH; +} + +static u32 sub_81D01DC(s32 state) +{ + switch (state) + { + case 0: + PlaySE(SE_SELECT); + sub_81C7AC0(0); + sub_81C78A0(); + return LT_INC_AND_PAUSE; + case 1: + if (IsPaletteFadeActive()) + return LT_PAUSE; + if (MainMenuLoopedTaskIsBusy()) + return LT_PAUSE; + sub_81C7FDC(); + break; + } + return LT_FINISH; +} + +static u32 sub_81D021C(s32 state) +{ + switch (state) + { + case 0: + PlaySE(SE_SELECT); + sub_81C7AC0(0); + return LT_INC_AND_PAUSE; + case 1: + if (IsPaletteFadeActive()) + return LT_PAUSE; + break; + } + return LT_FINISH; +} + +static void sub_81D024C(struct PokenavSub10 * ptr) +{ + s32 r2; + ptr->winid = AddWindow(&gUnknown_086237D4); + PutWindowTilemap(ptr->winid); + r2 = sub_81CFB38(); + sub_81D02B0(ptr->winid, 0, r2); + CopyWindowToVram(ptr->winid, 1); + sub_81D0288(ptr); +} + +static void sub_81D0288(struct PokenavSub10 * ptr) +{ + s32 r4 = GetSelectedMatchCall(); + s32 r2 = sub_81CFB38(); + sub_81D02B0(ptr->winid, r4 + 1, r2); + CopyWindowToVram(ptr->winid, 2); +} + +static void sub_81D02B0(s32 windowId, s32 val1, s32 val2) +{ + u8 strbuf[16]; + u32 x; + + u8 * ptr = strbuf; + ptr = ConvertIntToDecimalStringN(ptr, val1, STR_CONV_MODE_RIGHT_ALIGN, 3); + *ptr++ = CHAR_SLASH; + ConvertIntToDecimalStringN(ptr, val2, STR_CONV_MODE_RIGHT_ALIGN, 3); + x = GetStringCenterAlignXOffset(1, strbuf, 56); + AddTextPrinterParameterized(windowId, 1, strbuf,x, 1, 0xFF, NULL); +} + +static void sub_81D0304(void) +{ + struct MatchCallListTemplate template; + template.unk0 = sub_81CFB28(); + template.unk4 = sub_81CFB38(); + template.unk8 = 4; + template.unk6 = sub_81CFB64(); + template.unk9 = 13; + template.unkA = 17; + template.unkB = 1; + template.unkC = 8; + template.unkD = 2; + template.unkE = 1; + template.unk10 = sub_81D035C; + template.unk14 = NULL; + sub_81C81D4(&gUnknown_086237B0[1], &template, 0); +} + +static void sub_81D035C(struct PokenavMonList * item0, u8 * dest) +{ + u8 gender; + u8 level; + u8 * s; + const u8 * genderStr; + struct PokenavMonList * item = item0; + if (item->boxId == 14) + { + struct Pokemon * mon = &gPlayerParty[item->monId]; + gender = GetMonGender(mon); + level = GetLevelFromMonExp(mon); + GetMonData(mon, MON_DATA_NICKNAME, gStringVar3); + } + else + { + struct BoxPokemon * mon = GetBoxedMonPtr(item->boxId, item->monId); + gender = GetBoxMonGender(mon); + level = GetLevelFromBoxMonExp(mon); + GetBoxMonData(mon, MON_DATA_NICKNAME, gStringVar3); + } + StringGetEnd10(gStringVar3); + dest = sub_81DB494(dest, 1, gStringVar3, 60); + switch (gender) + { + default: + genderStr = gUnknown_086237F4; + break; + case MON_MALE: + genderStr = gUnknown_086237DC; + break; + case MON_FEMALE: + genderStr = gUnknown_086237E8; + break; + } + s = StringCopy(gStringVar1, genderStr); + *s++ = CHAR_SLASH; + *s++ = CHAR_SPECIAL_F9; + *s++ = 5; // LV + ConvertIntToDecimalStringN(s, level, STR_CONV_MODE_LEFT_ALIGN, 3); + dest = sub_81DB494(dest, 1, gStringVar1, 54); + ConvertIntToDecimalStringN(dest, item->unk6, STR_CONV_MODE_RIGHT_ALIGN, 2); +} diff --git a/src/trainer_hill.c b/src/trainer_hill.c index 650a748cb9..77c8fcb530 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -915,7 +915,7 @@ void SetHillTrainerFlag(void) } } -const u8 *sub_81D62AC(void) +const u8 *GetTrainerHillTrainerScript(void) { return EventScript_2C83F0; } diff --git a/src/trainer_see.c b/src/trainer_see.c index 9925aa6bc8..22b256a995 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -235,7 +235,7 @@ static u8 CheckTrainer(u8 eventObjectId) u8 approachDistance; if (InTrainerHill() == TRUE) - scriptPtr = sub_81D62AC(); + scriptPtr = GetTrainerHillTrainerScript(); else scriptPtr = GetEventObjectScriptPointerByEventObjectId(eventObjectId); diff --git a/tools/aif2pcm/Makefile b/tools/aif2pcm/Makefile index af7d19fe90..77df291527 100644 --- a/tools/aif2pcm/Makefile +++ b/tools/aif2pcm/Makefile @@ -1,4 +1,4 @@ -CC = gcc +CC ?= gcc CFLAGS = -Wall -Wextra -Wno-switch -Werror -std=c11 -O2 diff --git a/tools/bin2c/Makefile b/tools/bin2c/Makefile index ab11e1b61a..52806e39c6 100644 --- a/tools/bin2c/Makefile +++ b/tools/bin2c/Makefile @@ -1,4 +1,4 @@ -CC = gcc +CC ?= gcc CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 diff --git a/tools/gbafix/Makefile b/tools/gbafix/Makefile index 5b410da08f..91a60a9e4c 100644 --- a/tools/gbafix/Makefile +++ b/tools/gbafix/Makefile @@ -1,4 +1,4 @@ -CC = gcc +CC ?= gcc .PHONY: all clean SRCS = gbafix.c diff --git a/tools/gbagfx/Makefile b/tools/gbagfx/Makefile index 339585b92a..d9c219587b 100644 --- a/tools/gbagfx/Makefile +++ b/tools/gbagfx/Makefile @@ -1,4 +1,4 @@ -CC = gcc +CC ?= gcc CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -DPNG_SKIP_SETJMP_CHECK diff --git a/tools/jsonproc/Makefile b/tools/jsonproc/Makefile index 721da10252..47198b171e 100755 --- a/tools/jsonproc/Makefile +++ b/tools/jsonproc/Makefile @@ -1,4 +1,4 @@ -CXX := g++ +CXX ?= g++ CXXFLAGS := -Wall -std=c++11 -O2 diff --git a/tools/mapjson/Makefile b/tools/mapjson/Makefile index 9a49be506e..c1f703f9fe 100644 --- a/tools/mapjson/Makefile +++ b/tools/mapjson/Makefile @@ -1,4 +1,4 @@ -CXX := g++ +CXX ?= g++ CXXFLAGS := -Wall -std=c++11 -O2 diff --git a/tools/mid2agb/Makefile b/tools/mid2agb/Makefile index 77f96db5af..451d4b39fb 100644 --- a/tools/mid2agb/Makefile +++ b/tools/mid2agb/Makefile @@ -1,4 +1,4 @@ -CXX := g++ +CXX ?= g++ CXXFLAGS := -std=c++11 -O2 -Wall -Wno-switch -Werror diff --git a/tools/preproc/Makefile b/tools/preproc/Makefile index 63dedda1f0..8c48afea2a 100644 --- a/tools/preproc/Makefile +++ b/tools/preproc/Makefile @@ -1,4 +1,4 @@ -CXX := g++ +CXX ?= g++ CXXFLAGS := -std=c++11 -O2 -Wall -Wno-switch -Werror diff --git a/tools/ramscrgen/Makefile b/tools/ramscrgen/Makefile index 858db1a778..4e901a29c1 100644 --- a/tools/ramscrgen/Makefile +++ b/tools/ramscrgen/Makefile @@ -1,4 +1,4 @@ -CXX := g++ +CXX ?= g++ CXXFLAGS := -std=c++11 -O2 -Wall -Wno-switch -Werror diff --git a/tools/rsfont/Makefile b/tools/rsfont/Makefile index abe1cab518..930a92b36e 100644 --- a/tools/rsfont/Makefile +++ b/tools/rsfont/Makefile @@ -1,4 +1,4 @@ -CC = gcc +CC ?= gcc CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -DPNG_SKIP_SETJMP_CHECK diff --git a/tools/scaninc/Makefile b/tools/scaninc/Makefile index 1516f159cb..52e663d8da 100644 --- a/tools/scaninc/Makefile +++ b/tools/scaninc/Makefile @@ -1,4 +1,4 @@ -CXX = g++ +CXX ?= g++ CXXFLAGS = -Wall -Werror -std=c++11 -O2